59

我有一个定义如下的编辑文本。

<EditText  
android:layout_width="fill_parent" 
android:layout_height="wrap_content"
android:maxLines="1"
android:inputType="text" 
android:hint="@string/field_text"
android:id="@+id/field"
/>

我想设置一个自定义命令,以便当有人单击屏幕键盘上的 Done/Go 按钮时,单击一个按钮或只运行该按钮运行的方法。我认为这与 ime 选项有关,但我无法弄清楚它们是如何工作的。提前感谢您的帮助!

4

2 回答 2

141

你想要一个 android:imeOptions 和 setOnEditorActionListener 的组合

<EditText android:id="@+id/some_edittext"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:imeOptions="actionSend">
</EditText>


some_edittext.setOnEditorActionListener(new OnEditorActionListener() {
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            some_button.performClick();
            return true;
        }
        return false;
    }
});

显然你应该将 actionSend 更改为你想要的动作,并相应地更新 IME_ACTION_SEND。

于 2010-07-18T20:59:47.260 回答
0

查看setImeActionLabel方法(或imeActionLabelimeActionId属性)并setOnEditorActionListener设置侦听器以响应事件。

于 2010-07-18T20:13:32.267 回答