Android中onEditorAction从未被调用

7

我正在尝试捕获键盘从屏幕上移除的事件,我正在使用OnEditorActionListener类。然而,它的onEditorAction方法从来没有被调用。

这是我在XML中的EditText:

<EditText
    android:id="@+id/editTextSearch"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="20dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="50dp"
    android:layout_weight="0.05"
    android:background="@color/white"
    android:ems="10">
</EditText>

这是我在Java文件中处理它的方式:

private void createTextEdit()
{
    EditText searchTextField = (EditText)findViewById(R.id.editTextSearch);
    searchTextField.addTextChangedListener(new TextWatcher()
    {
        public void afterTextChanged(Editable s)
        {
           System.out.println("AFTER TEXT CHANGED");                                                             
        }
        public void beforeTextChanged(CharSequence s,
        int start, int count, int after)
        {
             System.out.println("BEFORE TEXT CHANGED " + s);
        }

        public void onTextChanged(CharSequence s,
                int start, int before, int count)
        {
            System.out.println(s);
        }
    });

    searchTextField.setOnEditorActionListener(new OnEditorActionListener()
    {
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event)
        {

            System.out.println("ACTION ID " + actionId);//NEVER CALLED

            if(actionId == EditorInfo.IME_ACTION_DONE)
            {
                System.out.println("ACTION DONE!!!!!!!!!!");
                return true;
            }

            return false;
        }
    });

    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(searchTextField, InputMethodManager.SHOW_IMPLICIT);
}

无论我对searchTextField做什么,无论是开始编辑还是结束编辑,所需的方法都没有被触发。我做错了什么?
1个回答

1

我在Nexus 7上也遇到了同样的问题。

我原以为是imeOptions的问题,但实际上并不是。

如果我将android:inputType="text"设置好,它就可以在我的平板电脑上工作了。

我认为这应该适用于其他输入类型。

我认为这是Nexus上的一个bug。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接