Android从另一个方法/类更改textView文本

时间:2013-05-08 13:10:29

标签: android

单击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)

但我怎样才能让其他方法可见?

很抱歉,如果帖子看起来搞砸了,但我没有知道如何以更好的方式解释我的情况

2 个答案:

答案 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)

staticA移除Tx (当然,您必须在致电MainActivity

时创建easy.e()