显示按钮文本和背景的随机播放

时间:2016-11-28 15:43:38

标签: java android button random background

我在xml中有一个按钮。按下按钮我希望快速更改该按钮上的背景和文本。

我通常会使用这样的代码作为最终结果:

String rndm[]  = {"A","B","C","D"};
{rnd = rndm[(int) (Math.random() * rndm.length)];}

{Button btn = (Button) findViewById(R.id.button1);
btn.setText(String.valueOf(rnd));
btn.setTextColor(Color.parseColor("#000000"));}

在此之前,虽然我想要一两次“洗牌”效果,但我希望这样做。

我尝试过像这样使用java.util.timer:

@Override
            public void onClick(View v) {                           

                    new java.util.Timer().schedule(
                        new java.util.TimerTask() {
                            @Override
                            public void run() {

String rndm[]  = {"A","B","C","D"};
    {rnd = rndm[(int) (Math.random() * rndm.length)];}

{Button btn = (Button) findViewById(R.id.button1);
btn.setText(String.valueOf(rnd));
btn.setTextColor(Color.parseColor("#000000"));}

}}}, 100 );

然后将其中一些具有不同背景的东西一个接一个地射击。我似乎无法掌握它。

我可能需要一种全新的方法来做我想做的事情,但我不确定什么是最好的目标来完成我需要的东西。

1 个答案:

答案 0 :(得分:1)

您应该使用Handler并确保您要运行的代码采用runnable方法:-)

从您的活动中尝试这样的事情

Handler handler = new Handler();
....

@Override
public void onClick(View v) {
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
        // set your button color here, no need to use runOnUiThread()
        // as this run() method is executed on Main thread
        }
    }, 100);
}