为什么TextView的文本没有改变?

Bam*_*amx 1 android onkeydown

首先我要说的是,我已经花了两周时间对此进行研究,但没有找到答案......

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

非常感谢!!!

码:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

}
Run Code Online (Sandbox Code Playgroud)

AMe*_*rle 8

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

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

希望这有用.

  • 这就是为什么我经常发现将`@Override`注释放在我认为我重写的任何方法之上是有用的,我的IDE会告诉我是否我试图覆盖超类中不存在的东西. (4认同)