次のように定義された編集テキストがあります。
<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オプションと関係があると思いますが、それらがどのように機能するかを理解できていません。助けてくれてありがとう!
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を更新する必要があります。
setImeActionLabel
メソッド(またはimeActionLabel
およびimeActionId
属性)および setOnEditorActionListener
を見てください。イベントに応答するようにリスナーを設定します。