使用InputMethodManager.showSoftInput(View,int,ResultReceiver)时定义EditText imeOptions

时间:2010-10-13 12:26:20

标签: android

在我的应用程序中,我有一个自定义视图,需要一些文本输入。由于视图本身不包含任何实际视图(它是一个完成自定义绘图的Surface),我有一个FrameLayout,它包含自定义视图,下面是EditText -view。当用户执行特定操作时,隐藏自定义视图并且EditText接管用户输入。这工作正常,但这个视图似乎忽略了android:imeOptions。我现在正在这样做:

    InputMethodManager inputMethodManager = (InputMethodManager)parent.getSystemService(Context.INPUT_METHOD_SERVICE);
    EditText t = (EditText)parent.findViewById(R.id.DummyEditor);
    t.setImeOptions(EditorInfo.IME_ACTION_DONE);
    inputMethodManager.showSoftInput(t, 0, new ResultReceiver(mHandler) {
      @Override
      protected void onReceiveResult(
            int resultCode, Bundle resultData) {
               // We're done
            System.out.println("Editing done : " +
              ((EditText)parent.findViewById(R.id.DummyEditor)).getText());
            }
      }
    );

似乎setImeOptions(EditorInfo.IME_ACTION_DONE)无效。我也尝试使用android:imeOptions =“actionDone”将选项添加到布局XML中。没有帮助。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

这篇文章看起来会回答你的问题: How do I handle ImeOptions' done button click?