0

button1 をクリックすると、別のレイアウトと別のクラスが呼び出されます。java.lang.NullPointerException でアプリがクラッシュするクラス 2 から textView のテキストを変更したい

クラス 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);

    }

一部の人々はすでにそのような質問をしていますが、私は有効な解決策を見つけられませんでした. public static TextView A;UI スレッドの外部では UI にアクセスできないこと、および nullpointerexception が表示されることは既に理解していますfinal TextView A = (TextView) findViewById(R.id.A)

しかし、他の方法で表示するにはどうすればよいですか?

投稿がめちゃくちゃに見える場合は申し訳ありませんが、自分の状況をより良い方法で説明する方法がわかりませんでした

4

2 に答える 2

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
于 2013-05-08T13:15:33.317 に答える
0

とのstatic両方から削除し ます (もちろん、を呼び出すまでに作成する必要があります)ATxMainActivityeasy.e()

于 2013-05-08T13:17:16.107 に答える