0

私がやろうとしているのは、人々が自分の名前を入力する EditText を用意することです。「プレイヤーの追加」ボタンを押すと、入力した名前がリスト フォームの下に表示されます。そのため、最初は非表示の 8 つのテキストビューを作成しましたが、ユーザーが名前を入力して [プレーヤーの追加] ボタンを押すと、テキストが名前に変わり、表示されます。

だから私は名前のリストの TextView 配列を設定しました。これはすべてテキストビューです

TextView[] nameList = new TextView[]{name1, name2, name3, name4, name5, name6, name7, name8};

onClick セクションのコードの後半で、私は

for (int i = 0; i < 8; i++) {
    String name = etName.getText().toString();
    nameList[i].setText(name);
    nameList[i].setVisibility(View.VISIBLE);
}

しかし、これでは「プレイヤー追加」ボタンを押すたびにアプリがクラッシュして NullPointerException が発生します。どうすればこれを解決できますか?

for ループがないとアプリがクラッシュしたため、問題は for ループにはありません。問題は、私が入れたかのように配列にあるようです

name1.setText(name);
name1.setVisibility(View.VISIBLE);

コードはうまくいきました。

4

2 に答える 2

2

nameList[i]nullであるため、配列が正しく初期化されていないようです。試す:

nameList[0] = (TextView) findViewById(R.id.text1);
nameList[1] = (TextView) findViewById(R.id.text2);
// etc
于 2013-01-05T18:03:52.637 に答える