0

nullpointerexceptionをデバッグしているときに、それがアプリのクラッシュの原因であることがわかるコード行があります。

nullpointerを引き起こしているコード行は次のとおりです。

ListView storeList = (ListView) findViewById(R.id.storeList);

次に、デバッグモードで、これを割り当てようとするとクラッシュします。

storeList.setAdapter(arrayAdapter2);

オブジェクトが初期化されていない理由がわかりません。以下ではArrayAdapter正常に初期化されます。もし、あんたが

以下は実際のJavaアクティビティファイルです。

public class StoreListView extends Activity {
UserFunctions userFunctions  = new UserFunctions();
ArrayAdapter<String> arrayAdapter2;
ArrayList<String> spinnerArray;



protected void onCreate(Bundle savedInstanceState) {
    ListView storeList = (ListView) findViewById(R.id.storeList);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.storelistviewpage);
    arrayAdapter2 = new ArrayAdapter<String>(StoreListView.this,android.R.layout.simple_list_item_1);
    spinnerArray = getIntent().getStringArrayListExtra("cusName");
    arrayAdapter2.addAll(spinnerArray);
    storeList.setAdapter(arrayAdapter2);
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main_screen, menu);
    return true;
}

}

そして以下はxmlファイルです:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<ListView
    android:id="@+id/storeList"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal|center_vertical" >

</ListView>

編集:一部の人が疑問に思っている場合は、Androidのメインフェストにアクティビティを追加しました

4

1 に答える 1

5

動く

ListView storeList = (ListView) findViewById(R.id.storeList);

setContentView()呼び出し後。

現在のコードはfindViewById() before setContentView()の結果が呼び出されるように割り当てているため、常にになり、NPEを取得します。storeListnull

于 2013-02-10T23:19:39.130 に答える