我正试图运行一个处理程序,该处理程序每秒都会更改按钮上的文本,但它根本没有运行,我没有收到任何错误消息或什么也没有。
这是代码
Button letterButton;
Handler handler;
String[] alphabet = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X", "Y", "Z" };
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.changeletters);
getSupportActionBar().hide();
letterButton = (Button) findViewById(R.id.letterButton);
letterButton.setOnClickListener(this);
handler = new Handler();
handler.postDelayed(run, 1000);
}
Runnable run = new Runnable() {
@Override
public void run() {
int index = 0;
letterButton.setText(alphabet[index++]);
}
};
最佳答案
每次将index
定义为0
,然后递增它,但在调用之后。
这就是为什么您的按钮始终显示“A”。
将int index = 0;
移动到onCreate
上,然后handler = new Handler();
new Timer().schedule(new TimerTask(){
@Override
public void run() {
runOnUiThread(new Runnable(){
@Override
public void run() {
letterButton.setText(alphabet[index++]);
};
});
}
}, 0, 1000);
看起来有点过于复杂,但经过一些训练后就变得很容易。
关于java - android:处理程序根本不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726059/