Я часами работаю над ошибкой, которую я получаю, когда хочу запустить ListActivity.Короткое решение о том, что я хочу сделать: у меня есть основное приложение с обычным меню, из которого я хочу запустить список настроек, где пользователь может добавлять определенные настройки.
Я пытаюсь запустить ListViewкак это:
startActivity(new Intent(this, FileManagerSettings.class));
Затем в методе создания я получил ошибку:
userSettings = deserializeObject();
if(userSettings.isEmpty())
{
userSettings.add(new SettingItem("Camera", android.os.Environment.DIRECTORY_DCIM, false));
}
super.onCreate(icicle);
Context mContext = this.getApplicationContext();
settingsList = (ListView)findViewById(R.id.list_settings);
settingsList.setAdapter(new CustomSettingsAdapter(mContext, userSettings));
Последняя строка вызывает ошибку.Для лучшего понимания здесь конструктор класса адаптера:
public CustomSettingsAdapter(Context context, ArrayList<SettingItem> sitems)
{
settingsArrayList = sitems;
mInflater = LayoutInflater.from(context);
}
А вот ошибка от logcat: (Извините, не знаю, как правильно отформатировать)
04-01 11: 07: 26.756: ОШИБКА / AndroidRuntime (375): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: главная 04-01 11: 07: 26.756: ОШИБКА / AndroidRuntime (375): java.lang.RuntimeException: Невозможно запустить действие ComponentInfo {org.openintents.filemanager / org.openintents.filemanager.FileManagerSettings}: java.lang.NullPointerException 04-01 11: 07: 26.756: ОШИБКА / AndroidRuntime (375): вызвано: java.lang.NullPointerException 04-01 11:07:26.756: ОШИБКА / AndroidRuntime (375): at org.openintents.filemanager.FileManagerSettings.onCreate (FileManagerSettings.java:43)
В моем представлении ошибка вызвана тем, что LayoutInflater контекста равен нулю... Но я не знаю, как получить LayoutInflater тогда и даже не знаю, действительно ли это ошибка ...
edit: журнал ошибок с использованием setContentView ():
04-01 12:06: 56.315: ОШИБКА / AndroidRuntime (669): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: основной.openintents.filemanager.FileManagerSettings}: java.lang.RuntimeException: у вашего контента должен быть ListView с атрибутом id, равным 'android.R.id.list'
, это xml-файл:
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/list"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView android:id="@+id/settings_list_title"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:text="@string/settings_header"
android:textAppearance="?android:attr/textAppearanceMedium"
android:gravity="center" />
<ListView android:id="@+id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>