Я хотел использовать массив в потоке, но я не знаю, куда поместить его так, что новый поток принимает его и использует его в методе выполненияпосылая переменную в нить
Мой код до сих пор является
public void game (Button[] temp) {
Thread check = new Thread(new startGame());
check.start();
}
class startGame implements Runnable {
startGame() {}
public synchronized void run() {
if (temp[0].getDrawingCacheBackgroundColor() == temp[1].getDrawingCacheBackgroundColor())
{
temp[0].setVisibility(View.INVISIBLE);
temp[1].setVisibility(View.INVISIBLE);
}
}
}
Я уверен, что я должен поставить temp
внутри startGame()
но где в классе StartGame я помещаю temp
, так что я могу использовать его в если заявление?
Вы не можете вызывать 'setVisibility' из фонового потока (или делать что-либо касающееся пользовательского интерфейса). Вы должны опубликовать это как runnable для обработчика основного потока ('Handler uiHandler = new Handler (Looper.getMainLooper()); uiHandler.post (runnable ...);') или использовать 'runOnUiThread (runnable)' изнутри деятельности. –
что вы пытаетесь сделать на самом деле – Elltz