我有以下代码:
public class MainActivity extends Activity {
public String myString;
...
public void updateString()
{
new Thread() {
@Override
public void run() {
this.myString = "TEST";
}
}
}
}
问题是我需要从线程更新myString,但我无法访问它。有什么建议?谢谢!
答案 0 :(得分:1)
你可以通过这种方式使字符串全局并更新它。
public class MainActivity extends Activity {
public String myString;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updateString();
}
public void updateString()
{
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0; i<10;i++){
myString=String.valueOf(i);
//log
Log.d("myString:",myString);
}
}
}).start();
}
答案 1 :(得分:0)
在这种情况下,创建一个自定义类,它将实现Runnable并将myString作为参数传递给类的构造函数,因此当创建runnable对象时,它将存储在本地,可以在需要时从run方法中加入。< / p>
答案 2 :(得分:0)
您可以使用getter和setter,例如:
公共类MainActivity扩展Activity { public String myString;
...
public void updateString()
{
new Thread() {
@Override
public void run() {
setMyString("TEST");
}
}
}
public void setMyString(String myString){
this.myString = myString;
}
}