2014-01-24 4 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 для обновления пользовательского интерфейса. – 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

Смежные вопросы