Android-如何刷新活动

Android-如何刷新活动,android,wait,Android,Wait,我想知道如何刷新活动。不像重新启动它,而是刷新它。发生的事情是,我有一个按钮亮起,点击后等待5秒,然后重置按钮,让另一个按钮亮起,唯一的问题是其他按钮没有亮起,因为它停留在同一个按钮上。我不知道这是否是代码的问题,或者我没有调用刷新等等。任何帮助都很好!谢谢 if(selected == target) { Toast.makeText(getApplicationContext(), "Good job!", Toast.LENGTH_SHORT).show(); view.g

我想知道如何刷新活动。不像重新启动它,而是刷新它。发生的事情是,我有一个按钮亮起,点击后等待5秒,然后重置按钮,让另一个按钮亮起,唯一的问题是其他按钮没有亮起,因为它停留在同一个按钮上。我不知道这是否是代码的问题,或者我没有调用刷新等等。任何帮助都很好!谢谢

if(selected == target) {
    Toast.makeText(getApplicationContext(), "Good job!", Toast.LENGTH_SHORT).show();
    view.getBackground().setColorFilter(Color.GREEN, PorterDuff.Mode.MULTIPLY);
    } else {
        Toast.makeText(getApplicationContext(), "Wrong!", Toast.LENGTH_SHORT).show();
        view.getBackground().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY);
    }
h.postDelayed(task, millisDelay);
那么我的任务是:

private Runnable task = new Runnable() { 
    public void run() {
      ResetButtons();
      int rnd = new Random().nextInt(buttons.length);
      i = rnd;
      buttons[i].getBackground().setColorFilter(Color.YELLOW, PorterDuff.Mode.MULTIPLY);
    }
};
试试这个:

public void onClick (View v){
    Intent intent = getIntent();
    finish();
    startActivity(intent);
}
(或)

这是我在更改后重新加载活动所做的操作,从首选项更改返回

@Override
protected void onResume() {

   super.onResume();
   this.onCreate(null);
}

这实际上会导致活动重新绘制自身。

我不太了解。但是,您想在某些操作后更改按钮的颜色或背景吗?使用runOnUiThread刷新UI。您还可以使用
View.invalidate()
强制视图重新绘制自身。@HardikTrivedi,是的。我希望用户按下正确的按钮,然后它将等待几秒钟,然后另一个随机按钮将亮起。如何在不重新启动整个活动的情况下执行此操作?只是更新UI,使其平稳更新,而不是再次关闭和打开页面?view.invalidate()仅在按下按钮时更新按钮,我需要在按下按钮时进行更新,以便自动更改不同的颜色。我想我需要使用异步,但我不知道从哪里开始。重新启动活动生命周期对于试图强制重新绘制ui组件不是一个好的解决方案