私がやりたいことは、仮想キーボードに表示されるデフォルトの「完了」ラベルを変更することです。ここで私は運なしで試してみたものです:Android:setImeActionLabelの使用方法を理解できません
mSearchInput.setImeOptions(EditorInfo.IME_ACTION_DONE);
mSearchInput.setImeActionLabel(getString(R.string.search_action_label), EditorInfo.IME_ACTION_DONE);
I 、しかし、これで、そのボタンのクリックを処理するために午前できる:
mSearchInput.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
performSearch();
return true;
}
return false;
}
});
私は方法についての無知です私はそのボタンのラベルを現時点で変更することができます。
これは好奇心です。エミュレータでランドスケープに切り替えると、ソフトキーボードが表示されなくなります。 また、メッセージングアプリケーションでは、「完了」ボタンの代わりにスマイリー(「:-)」を挿入していることに気付きました。カスタムキーボードレイアウトを使用していますか? ちなみに、チップをありがとう。 – Felix
エミュレータが横向きモードで公開されている物理キーボードをシミュレートするため、ソフトキーボードが表示されません(開いた状態でソフトキーボードがG1に表示されないように)。キーボードを無効にするには、AVDのconfig.iniファイルを変更し、 'hw.keyboard = no'を追加します。 メッセージングアプリケーションに関しては、私はそのソースをチェックしました。スマイリーは 'inputType =" textShortMessage "の副産物だと思っています。" Send "ボタンがないのは' imeOptions = " flagNoEnterAction "'、しかし私は実際にそれをテストしていません。 Touch Inputは両方のフラグを無視しているようです。 – mernen
元の質問のコードから、この "OR"コードを追加するだけで、物理キーボードの "return"ボタンを説明することができます:if(actionId == EditorInfo.IME_ACTION_SEARCH || event.getKeyCode()== KeyEvent.KEYCODE_ENTER ) – CircuitBreaker716