单击button1后,将调用另一个布局和另一个类。 现在我想更改textView中的textView文本,导致应用程序崩溃,java.lang.NullPointerException
Class 1
的重要部分public static TextView A;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
[第1课中的按钮]
setContentView(R.layout.raten);
final TextView A = (TextView) findViewById(R.id.A); //the textview I wanna chage
max = 10;
Easy easy = new Easy(); // the other class
easy.e();
[现在是第1类中应该更改文本的方法]
public static void Tx(int i)
{
A.setText("adsfasdf");
}
[第2类的重要部分(“简易”)]
public void e(){
System.out.println("called class easy");
int max = MainActivity.max;
System.out.println(max);
for (int i= 0; i<max; i++){
System.out.println("runde"+i);
MainActivity.Tx(i);
}
我知道,有些人已经问过这样的问题,但我找不到合适的解决方案。我已经明白,你无法访问UI线程之外的UI内容并且出现nullpointerexception,因为他使用的是“空”public static TextView A;
而不是final TextView A = (TextView) findViewById(R.id.A)
。
但我怎样才能让其他方法可见?
很抱歉,如果帖子看起来搞砸了,但我没有知道如何以更好的方式解释我的情况
答案 0 :(得分:1)
不是定义新的局部变量A,而是分配给静态。
更改
final TextView A = (TextView) findViewById(R.id.A); //the textview I wanna chage
到
A = (TextView) findViewById(R.id.A); //the textview I wanna chage
答案 1 :(得分:0)
从static
和A
移除Tx
(当然,您必须在致电MainActivity
)
easy.e()