93

EditText があり、ユーザーがキーパッドの「完了」ボタンを押したかどうかをリッスンしたい場合、どうすればよいでしょうか?

4

7 に答える 7

162

ディナッシュの答えは素晴らしいですが、すべてのデバイスで機能しているわけではありません。以下のコードは、すべてのデバイスで正常に動作します

edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        if (actionId == EditorInfo.IME_ACTION_DONE) {
            Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }
});
于 2016-05-14T09:39:38.903 に答える
102

コードは

final EditText edittext = (EditText) findViewById(R.id.edittext);
edittext.setOnKeyListener(new View.OnKeyListener() {
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
            Toast.makeText(HelloFormStuff.this, edittext.getText(), Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }
});

その「edittext」はテキストフィールドのIDです

このリンクを確認してください setOnKeyListener を editText に設定するだけです

于 2011-04-15T13:44:23.033 に答える