我正在开发一个Android项目,我需要根据编辑文本视图上的更改来更改表格布局。代码在模拟器上正常工作。但它并不适用于实际的设备。在这种情况下,我也使用片段。我的 onKey 监听器如下所示。
EditProduct.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
Editable prx=EditProduct.getText();
String new_prx=prx.toString();
//mini_productList
int count=0;
if (new_prx.equals("")) {
loadtableProducts(productList);
}else {
for(int i=0;i<productList.size();i++){
if (productList.get(i).getDescription().toString().substring(0, (new_prx.length())).equalsIgnoreCase(new_prx)) {
mini_productList.add(productList.get(i));
count++;
}
}
loadtableProducts(mini_productList);
//Toast.makeText(getActivity(), "No of products "+count, Toast.LENGTH_SHORT).show();
}
return false;
}
});
布局中的编辑文字视图如下所示
<EditText
android:id="@+id/edit_product"
android:layout_width="@dimen/txtWidth"
android:layout_height="@dimen/txtHeight"
android:background="@color/transparent"
android:hint="Enter the product name"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="@dimen/boldtext" />
此外,我添加了一个Toast,以确保它在设备上工作,并在输入密钥时显示。 所以有人可以帮助我解决这个问题。 谢谢!
答案 0 :(得分:2)
EditText.setOnKeyListener的文档声明:
“在此视图中按下硬件键时注册要调用的回调。按下软件输入方法通常不会触发此侦听器的方法。”
模拟器使用的是硬件键盘,而您的设备使用的是软件键盘。我建议您使用“addTextChangedListener”替代。
但是我注意到你说你的Toast确实表明输入了一个键。那么在使用实际设备时,您实际上是在输入OnKeyListener吗?如果是这样,我会删除我的答案。