2014-01-24 122 views
0

我想知道如何刷新活动。不喜欢重新启动它,但刷新它。发生了什么是我有它,所以一个按钮点亮,点击后,它等待5秒钟,然后重置按钮,并有另一个按钮点亮,唯一的问题是其他按钮不亮,因为它保持卡住同一个按钮。我不知道这是否是代码问题,或者我不打电话刷新等等。任何帮助都很好!谢谢。Android - 如何刷新活动

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); 
    } 
}; 
+0

我不太了解。但是,你想在某些行动后改变按钮的颜色或背景吗? –

+0

使用runOnUiThread刷新UI。 – Hulk

+0

你也可以使用'View.invalidate()'强制视图自己重绘。 –

回答

0

试试这个:

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

(OR)

这是我做的改变从返回后重新加载活动偏好改变。

@Override 
protected void onResume() { 

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

这基本上导致活动重绘自己。

+0

如何在不重新启动整个活动的情况下执行此操作?只是更新用户界面,使其更新顺利,而不是页面关闭并再次打开? – Tyson

+0

使用'View.invalidate()'来更新UI –

+0

view.invalidate()只会在按下按钮时更新按钮,我需要在按下按钮时更新按钮,以便它自动更改不同的颜色。我想我需要使用ASync,但我不知道从哪里开始。 – Tyson