Как сделать edictxt автофокусом после показа Toast?

У меня есть EditText, который читает 13-значный штрих-код. Я хочу, чтобы виртуальная клавиатура отображалась на экране, а EditText всегда имела фокус. Следующий код позволяет мне писать штрих-код и искать продукт при нажатии клавиши ввода, и он работает хорошо. Но если я набираю штрих-код с менее чем 13 цифрами или набираемый штрих-код не существует в моей базе данных, я хочу показать пользователю тост, сообщая ему об этом. После отображения Toast, я хочу, чтобы EditText автоматически увеличивал фокус, позволяя пользователю просто набирать штрих-код снова. После показа Toast, я попробовал метод requestFocus (), но это не сработало. Мягкая клавиатура всегда отображается, но после Toast я не могу снова ввести EditText, если не коснуться EditText. Как я могу это сделать?

final EditText procura_codbar = (EditText) findViewById(R.id.procurar_produto_codbar); procura_codbar.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) { String codbar = procura_codbar.getText().toString(); if (codbar.length()<13){ Toast.makeText(MainActivity.this, "type a 13 digit barcode", Toast.LENGTH_LONG).show(); } else{ if (bdh!=null){ bdh.closedb(); bdh.close(); } bdh = new DBHelper(MainActivity.this); Log.i("CODBAR", codbar); produto prod_ = bdh.getProduto(codbar); if (prod_!=null){ showDialogPreco(prod_); procura_codbar.setText(""); }else{ Toast.makeText(MainActivity.this, "Product not found", Toast.LENGTH_SHORT).show(); procura_codbar.setSelection(codbar.length()); } } procura_codbar.requestFocus(); procura_codbar.setSelection(codbar.length()); } return false; } }); 

И вот XML:

 <EditText android:id="@+id/procurar_produto_codbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:inputType="textNoSuggestions|number" android:textSize="22sp" android:maxLength="13" android:layout_toRightOf="@+id/tv_procura_codbar" > <requestFocus /> </EditText> 

Заранее спасибо.

EDIT: Беспокойство с этим, я нашел проблему. Это решение:

 return true; 

Теперь это работает …

Поместите этот код рядом с этим сообщением Toast:

 Toast.makeText(MainActivity.this, "type a 13 digit barcode", Toast.LENGTH_LONG).show(); procura_codbar.setFocusableInTouchMode(true); procura_codbar.setFocusable(true); procura_codbar.requestFocus(); procura_codbar.setSelection(codbar.length()); 

Это сработало для меня. Также вам нужно удалить * procura_codbar.requestFocus (); * в нижней части кода.

Мне удалось вернуть фокус обратно в EditText , requestFocus() мгновение, прежде чем вызвать метод requestFocus() :

 final Handler handler = new Handler(); final EditText myEditText = (EditText) findViewById(R.id.editText1); myEditText.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { // See if user presses enter if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) { Toast.makeText(MainActivity.this, "You pressed enter!", Toast.LENGTH_SHORT).show(); // Put focus back in the EditText after brief delay handler.postDelayed(new Runnable() { @Override public void run() { myEditText.requestFocus(); // Select all text myEditText.setSelection(0, myEditText.getText().length()); } }, 200); return true; } return false; } }); 
Intereting Posts
Как я могу получить кешированный растровый файл, который я загрузил с помощью Volley ImageLoader? Как я могу вернуться обратно в свою активность из окна настроек GPS Как найти скорость передачи данных в сети GPRS / 3G в android? Как открыть исходный код приложения для Android Android: что выбрать для значений кода запроса? Расположение Android с панелью действий и вкладками Сбой сертификата ssl от Charles не удалось из-за сбоев сети Android ValueAnimator не работает Создание ArrayAdapter с использованием ресурса xml и получение полей «id» или «value» с использованием spinner График рисования в режиме реального времени с использованием пользовательского вида Android Активация элементов анимации Android L Какова связь между Looper, Handler и MessageQueue в Android? Где я могу найти хорошие примеры Android UI? Как отладить контрольные тесты в Android Studio? Android: нужно ли включать службы Google Play для использования GCM?