3

ユーザーがメッセージを入力するための EditText があるメッセージングアプリに取り組んでいます。メソッドを使用してキーボードに「送信」ボタンを用意しましたsetImeOptions()。ただし、ユーザーが「送信」ボタンを押すたびに、EditText はフォーカスを失います。(「フォーカス」という言葉には疑問がありますが、私が意味するのはキーボードが消えるということです..)

送信するたびにキーボードを取得するには、ユーザーが EditText をもう一度クリックする必要があるため、少し不便です。editText1.requestFocus()次のようにコードで試しました:

editText1.setOnKeyListener(new OnKeyListener() {
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                // If the event is a key-down event on the "send" button
                if ((event.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
                    // Perform action on key press
                    adapter.add(new OneComment(false, editText1.getText().toString()));
                    editText1.setText("");
                    editText1.requestFocus();
                    return true;
                }
                return false;
            }
        });

しかし、これは機能しません...回避策を提案してください..ありがとう:)

4

1 に答える 1

2

あなたはこれをやってみることができます

editText1.setOnEditorActionListener(new OnEditorActionListener() {        
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if(actionId == EditorInfo.IME_ACTION_SEND){
            editText1.setText("");
            editText1.requestFocus();
            InputMethodManager imm = (InputMethodManager)getSystemService(Service.INPUT_METHOD_SERVICE);
            imm.showSoftInput(editText1, 0);
        }
        return true;
    }
});
于 2013-06-30T15:13:16.783 に答える