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"
/>

誰かがオンスクリーンキーボードの[完了/実行]ボタンをクリックしたときにボタンがクリックされるか、ボタンによって実行されるメソッドを実行するように、カスタムコマンドを設定したいと思います。これは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メソッド(または属性)をimeActionLabel確認し、イベントに応答するリスナーを設定します。imeActionIdsetOnEditorActionListener

于 2010-07-18T20:13:32.267 に答える