0

キープレスの数をリアルタイムでカウントするにはどうすればよいですか?? またはキープレスで?これが私のコードです:

public class MyActivity extends Activity implements View.OnClickListener, View.OnKeyListener {
    /**
     * Called when the activity is first created.
     */
    EditText ed

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

        ed=(EditText)findViewById(R.id.editText);
       ed.setOnKeyListener(this);
       }

   @Override
    public boolean onKey(View view, int i, KeyEvent keyEvent) {

            keyCounter++;
      Log.d("key","" + keyEvent.getKeyCode());

     return super.onKeyUp(i, keyEvent) ;
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_B:

                keyCounter++;
                return true;
        }

        return super.onKeyUp(keyCode, event);
    }
}

onkeyup と on key の両方を試しましたが、うまくいきませんでした。keyCount の値をトーストしますが、まだゼロです。Androidでキープレスの数を取得する方法を知っている人はいますか?? ありがとう。

4

1 に答える 1

1

実際のキーボードまたはソフトウェア キーボードで試していますか?

android.view.View.OnKeyListener

クラス概要

ハードウェアキー イベントがこのビューにディスパッチされたときに呼び出されるコールバックのインターフェイス定義。

代わりに TextChangedListener を使用できるかどうかを確認してください。

myEditText.addTextChangedListener(new TextWatcher(){
        public void afterTextChanged(Editable s) {}
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            //do stuff
        }

    });

他のもの:

1) Toast の代わりに Log.d を使用します。

2) keyCounter++ を試してください。onKey が呼び出されるかどうかを確認する条件なし。

3) return false/true を変更して、super.onKey(keyCode, event) を返すようにします。

于 2013-01-17T20:36:04.967 に答える