web-dev-qa-db-ja.com

Android:テキスト移動ボタンの編集

次のように定義された編集テキストがあります。

<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オプションと関係があると思いますが、それらがどのように機能するかを理解できていません。助けてくれてありがとう!

56
Corey Alexander

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を更新する必要があります。

131
Niall Sheridan

setImeActionLabel メソッド(またはimeActionLabelおよびimeActionId属性)および setOnEditorActionListener を見てください。イベントに応答するようにリスナーを設定します。

0
adamp