2

EditText に OnKeyListener() を適用しましたが、Samsung Galaxy S3 では機能しませんが、他のすべての電話では機能します...何が間違っているのかわかりません...

  et = (EditText) findViewById(R.id.editText1); 
  et.setOnKeyListener(new OnKeyListener() {

        @Override
        public boolean onKey(View arg0, int keyCode, KeyEvent arg2) {
            // TODO Auto-generated method stub
            // You can identify which key pressed buy checking keyCode value
            // with KeyEvent.KEYCODE_
            if (keyCode == KeyEvent.KEYCODE_DEL) {
                // this is for backspace
                Log.d("Button Event", "BackSpace Pressed");
                if (et.getSelectionStart() < length + 1) {
                    return true;
                } else {
                    return false;
                }
            }
            return false;
        }

    });
4

1 に答える 1

6

et.addTextChangedListener(new TextWatcher()..) を使用して、すべてのロジックを afterTextChanged(...) コールバックに移動してみてください。

OnKeyListener() は、View.OnKeyListener の説明に記載されているように、ハードウェア キーボードからのイベントでのみ呼び出されます。

于 2013-09-26T15:15:21.410 に答える