Java 控制ime\u操作\u完成的行为

Java 控制ime\u操作\u完成的行为,java,android,android-layout,layout,Java,Android,Android Layout,Layout,我有两个android活动,ime_action_已完成 活动A在EditText视图上显示它 在那里-软键盘“完成”关闭键盘 private void initLayout(){ mInputText.setImeOptions(EditorInfo.IME_ACTION_DONE); } 无onEditorAction覆盖 活动B在扩展TokenCompleteTextView (com.tokenautocomplete.TokenCompleteTextView扩展了andro

我有两个android活动,ime_action_已完成

活动A在EditText视图上显示它

在那里-软键盘“完成”关闭键盘

private void initLayout(){
    mInputText.setImeOptions(EditorInfo.IME_ACTION_DONE);
}
onEditorAction
覆盖

活动B在扩展
TokenCompleteTextView

(com.tokenautocomplete.TokenCompleteTextView扩展了android.widget.MultiAutoCompleteTextView实现了android.widget.TextView$OnEditorActionListener)

在那里,已完成的操作没有任何作用

  completionView.setOnEditorActionListener(new OnEditorActionListener() {

      @Override
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (completionView.enoughToFilter() && (adapter != null)) {
 //some logic. doesn't separate action_done from the other actions.
        }
        return true;
      }
    });

如何使第二个键盘也关闭软键盘?

mInputText.setImeOptions(EditorInfo.IME\u ACTION\u DONE)

将操作设置为“完成”操作的默认值(关闭键盘)

在活动B中,我使用了
setOnEditorActionListener
,它捕获ime\u操作并使用它

因此,我不得不在活动B中添加以下内容:

completionView.setOnEditorActionListener(new OnEditorActionListener() {

  @Override
  public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


    if (actionId == EditorInfo.IME_ACTION_DONE) {
      InputMethodManager imm =
          (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
      imm.hideSoftInputFromWindow(completionView.getWindowToken(), 0);
    }
或者像这样:

 completionView.setImeOptions(EditorInfo.IME_ACTION_DONE);


    completionView.setOnEditorActionListener(new OnEditorActionListener() {

      @Override
      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {


//logic
        }
        return false;
      }
    });