我有两项活动。 MainActivity和SecondActivity。 MainActiviy有一个TextView(tvTXT)和三个按钮(btnSend,btnThread,btnStartActivity2) SecondActivity有一个TextView(tvTXT)和一个Button(btnSend1)
当布尔txtUPDATE = true时,btnThread启动一个正在改变tvTXT文本的线程
btnSend和btnSend1将该布尔值更改为txtUPDATE = true
当按下btnSend时,它成功执行tvTXT.setText(“Value is:”+ x);在MainActity中。 当按btnStartActivity2以启动SecondActivity并且之后按下btnSend1时,线程在MainActivity上启动,但不能在TVTXT.setText(“值为:”+ x);在SecondActiviy中。
** btnThread在run()上使用以下代码启动线程:**
public void run() {
while (txtUPDATE){
MainActivity.thisActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
MainActivity.tvTXT.setText("Value is: "+ x);
MainActivity.txtUPDATE = false;
}
});
}
** btnSend和btnSend1代码**
txtUPDATE = true;
x++;
如何在MainActivity中启动的线程中设置SecondActivity中的TextView(tvTXT)文本?
答案 0 :(得分:0)
为什么你会尝试在MainActivity中使用SecondActivity中的某些内容?解释令人困惑。您的runnable只在MainActivity中更改tvTXT,SecondActivity中使用的TextView是一个完全不同的对象和View实例,因此Runnable无法在SecondActivity中更改UI组件。