android toast有焦点,android – 如何在显示Toast后进行edittext自动对焦?
我有一個EditText,讀取13位數的條形碼.我想要做的是保持屏幕上顯示的虛擬鍵盤和EditText始終具有焦點.下面的代碼讓我編寫條形碼并在按下回車鍵時搜索產品,并且效果很好.但是如果我輸入的條形碼少于13位數或者我的數據庫中不存在條形碼類型,我想向用戶顯示Toast,通知他.顯示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:
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" >
提前致謝.
編輯:弄亂這個,我發現了問題.繼承人解決方案:
return true;
現在它有效……
總結
以上是生活随笔為你收集整理的android toast有焦点,android – 如何在显示Toast后进行edittext自动对焦?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米6 android os,脱离安卓!
- 下一篇: android gradle is插件,