Android - findViewById(R.id.list) returns null

Dave picture Dave · Sep 23, 2010 · Viewed 22.4k times · Source

I have a class that is called when my app launches.

public class MainActivity extends Activity implements NetworkEvent.

In this situation,

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

works perfectly. However if I then call a new intent via:

   String[] names = object.names();

Intent myIntent = new Intent(MainActivity.this, SimpleList.class); myIntent.putExtra("names", names); startActivityForResult(myIntent, 0);

where SimpleList is defined as:

public class SimpleList extends ListActivity implements NetworkEvent

then when I call

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

Log.i("MyApp", "List:" + list);

from within the SimpleList class, list is null :(

How come? Both classes are within the same package.

Thanks.

Answer

Chris Fei picture Chris Fei · Sep 24, 2010

I'm not exactly sure why it is happening in your case, but the ListView in your layout XML, must be defined as <ListView android:id="@android:id/list", not the typical <ListView android:id="@+id/list". If your class extends ListActivity, in that case, you just use getListView() to access the list.
Check out this: http://developer.android.com/reference/android/app/ListActivity.html