Android – findViewById (R.id.list) возвращает null

У меня есть класс, который вызывается, когда запускается мое приложение.

public class MainActivity extends Activity implements NetworkEvent. 

В этой ситуации,

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

Отлично работает. Однако, если я затем назову новое намерение через:

  String[] names = object.names(); 

Intent myIntent = новое намерение (MainActivity.this, SimpleList.class); MyIntent.putExtra («имена», имена); StartActivityForResult (myIntent, 0);

Где SimpleList определяется как:

 public class SimpleList extends ListActivity implements NetworkEvent 

Тогда, когда я позвоню

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

Log.i («MyApp», «Список:» + список);

Из класса SimpleList, список имеет значение null 🙁

Как так? Оба класса находятся в одном пакете.

Благодарю.

Я не совсем уверен, почему это происходит в вашем случае, но ListView в вашем XML-макете должен быть определен как <ListView android:id="@android:id/list" , а не типичный <ListView android:id="@+id/list" . Если ваш класс расширяет ListActivity , в этом случае вы просто используете getListView() для доступа к списку.
Проверьте это: http://developer.android.com/reference/android/app/ListActivity.html

Убедитесь, что вы вызываете setContentView(R.whatever) прежде чем вы сможете найти в нем какие-либо идентификаторы.

В подобном случае findViewById перестала работать для меня после добавления представления LinearLayout .

Решение также должно было добавить следующее:

xmlns:android="http://schemas.android.com/apk/res/android"

К LinearLayout.

Добавить

"http://schemas.android.com/apk/res/android&quot;

К вашему спискуView, например:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="test" android:layout_width="fill_parent" android:layout_height="40dp"> </TextView> <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </LinearLayout> 

Я просто хочу сказать, в чем была моя проблема. В моем XML я назначил android:name="@+id/bob" вместо android:id="@+id/bob" , но из-за @ + id он все еще регистрировал его как intellisensable field.