你好我想使用一个变量并在另一个内部范围内捕获一些数据并将其用于主范围内的其他位置,但我的问题是当我在内部范围内设置我的变量时,它将被遗忘在范围之外。
public class ...{
static TextView txt1;
static String i="Z0";
static Handler UIupdater = new Handler() {
@Override
public void handleMessage(Message msg) {
//some data
i ="Z1";
}
};
txt1 = (TextView) findViewById(R.id.txt1);
txt1.setText(i+"");//still get "Z0"
}
我想看“Z1”,但它显示“Z0”。 解决方案是什么?
答案 0 :(得分:1)
问题是在加载类时运行了行txt1.setText(i+"");
,而在处理程序实际收到消息之前行i ="Z1";
没有运行 - 来不及影响{{1} }。
解决方案是将txt1
移动或复制到之前运行的程序的一部分,或者将i = "Z1"
移动或复制到稍后运行的程序的一部分。例如:
txt1.setText(i+"");
答案 1 :(得分:0)
试试这个
public class ...{ static TextView txt1; static String i="Z0"; static Handler UIupdater = new Handler() { @Override public void handleMessage(Message msg) { //some data i ="Z1"; txt1 = (TextView) findViewById(R.id.txt1); txt1.setText(i+"");//still get "Z0" } }; }