我工作了幾個小時,我得到一個錯誤,當我想啓動一個ListActivity。 關於我想要做什麼的簡短解決方法: 我有一個主要的應用程序和一個普通菜單,我想從中啓動一個設置列表,用戶可以在其中添加特定設置。NullPointerException當啓動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: ERROR/AndroidRuntime(375): FATAL EXCEPTION: main 04-01 11:07:26.756: ERROR/AndroidRuntime(375): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.openintents.filemanager/org.openintents.filemanager.FileManagerSettings}: java.lang.NullPointerException 04-01 11:07:26.756: ERROR/AndroidRuntime(375): Caused by: java.lang.NullPointerException 04-01 11:07:26.756: ERROR/AndroidRuntime(375): at org.openintents.filemanager.FileManagerSettings.onCreate(FileManagerSettings.java:43)
在我的思想該錯誤是由於上下文的LayoutInflater爲空...但我不知道如何獲得LayoutInflater,甚至不知道這是否真的是錯誤...
編輯:錯誤日誌使用setContentView():
04-01 12:06:56.315: ERROR/AndroidRuntime(669): FATAL EXCEPTION: main 04-01 12:06:56.315: ERROR/AndroidRuntime(669): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.openintents.filemanager/org.openintents.filemanager.FileManagerSettings}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is '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>
你確定你有一個ListView有了這個ID? R.id.list_settings – RoflcoptrException 2011-04-01 11:28:45
是的。絕對確定。 – 2011-04-01 11:33:29
你可以測試女巫變量是空的... ListView,適配器或上下文。 – RoflcoptrException 2011-04-01 11:36:21