java - android:处理程序根本不工作

标签 java android handler

我正试图运行一个处理程序,该处理程序每​​秒都会更改按钮上的文本,但它根本没有运行,我没有收到任何错误消息或什么也没有。

这是代码

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/

相关文章:

java - 以编程方式禁用 Android 上的屏幕开/关磁传感器

java - 每隔几秒重复一次 AnimationDrawable

android - 我可以使用二维码调用自定义应用程序吗?

python - 如何在 python 中创建一个非 root 记录器

android - Android 上的 AsyncTask 和错误处理

java - 读《 Swing 》是否值得?

java - 在 shell 中使用用户输入用文件填充命令中的空白?

java - PageAdapter 不输出正常数据

java - 声明类属性 protected 还是公开?

java - 以编程方式减少处理程序中的时间间隔。安卓