1

首先,我不得不说我已经研究了 2 周,但没有找到答案......

我有一个TextView,所以我想做的是用任何硬件按键的键码更改它的文本(是的,我知道有些按键不能使用)......问题是文本不想改变...... .任何人请帮我解决这个问题。

非常感谢!!!

代码:

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import android.widget.TextView;



public class keycodelistener extends Activity {

    private TextView txtcode;

    public void onCreate(Bundle savedInstanceState) {   
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.keycodedialog);

        txtcode = (TextView)findViewById(R.id.keypresstext);

    }

    public boolean onKeyDown(View v, int keyCode, KeyEvent event) {
        txtcode.setText(String.valueOf(keyCode));
        return super.onKeyDown(keyCode, event);
    }
}

最后,感谢@CFlex !最后三行必须是:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     //Log.e("","yeeeahhhh");
     txtcode.setText(String.valueOf(keyCode));
     return true;

}
4

1 回答 1

8

您需要覆盖onKeyDown(keyCode, event),因为onKeyDown(View v, int keyCode, KeyEvent event)不存在。文档在这里

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    /* do what you want */
}

希望这会有所帮助。

于 2012-07-11T13:52:46.803 回答