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;

现在它有效……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值