我想在一个线程中使用一个数组,但我不知道在哪里放置它以便新线程接受它并在run方法中使用它
到目前为止,我的代码是
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
以便我可以在if语句中使用它吗?
答案 0 :(得分:0)
尝试将其放在startGame
类中,该类应命名为StartGame
。在构造函数中传递它并将类变量设置为值。
public void game (Button[] temp) {
Thread check = new Thread(new startGame(temp));
check.start();
}
class startGame implements Runnable {
private Button[] temp
startGame(Button[] temp) {
this.temp=temp;
}
public synchronized void run() {
if (temp[0].getDrawingCacheBackgroundColor() == temp[1].getDrawingCacheBackgroundColor() )
{
temp[0].setVisibility(View.INVISIBLE);
temp[1].setVisibility(View.INVISIBLE);
}
}
}
答案 1 :(得分:0)
ug_是正确的。使它成为一个类变量,如果它被共享则设置一些锁,并像任何其他类变量一样访问它。
但正如Ashton Engberg在评论中明确指出的那样,你无法从UI线程之外修改UI元素。