onKey listner在emulator上正常工作,但在android设备上不工作

onKey listner在emulator上正常工作,但在android设备上不工作,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我正在从事一个android项目,在该项目中,我需要根据编辑文本视图上的更改更改表布局。代码在仿真器上正常工作。但它在实际的设备上不起作用。在本例中,我也使用片段。我的onKey监听器如下所示 EditProduct.setOnKeyListener(new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { //

我正在从事一个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;
        }
    });
EditProduct.setOnKeyListener(新的OnKeyListener(){
@凌驾
公共布尔onKey(视图v、int keyCode、KeyEvent事件){
//TODO自动生成的方法存根
可编辑prx=EditProduct.getText();
字符串new_prx=prx.toString();
//迷你产品列表
整数计数=0;
如果(新的_prx.equals(“”){
loadtableProducts(产品列表);
}否则{

对于(int i=0;i,EditText.setOnKeyListener的文档说明:

“注册在该视图中按下硬件键时调用的回调。软件输入方法中的按键通常不会触发此侦听器的方法。”

模拟器使用的是硬件键盘,而您的设备使用的是软件键盘。我建议您使用“addTextChangedListener”作为替代


但是我注意到,您说您的Toast确实表示输入了一个键。那么,您在使用实际设备时是否真的输入了OnKeyListener?如果是,我将删除我的答案。

否,它只显示Toast,但不更改表。我将尝试您的Toast。哦,我忘了留下评论。我在onTextC中使用了PostTextChanged挂起听者。它工作正常。提前感谢。
 <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" />