我真的很沮丧这个错误.我几乎不可能找到.
代码很简单.我正在尝试使用导航抽屉.
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<FrameLayout
android:id="@+id/main_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<ListView
android:id="@+id/navigationdrawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#111"
android:divider="@android:color/transparent"
android:dividerHeight="0dp" />
Run Code Online (Sandbox Code Playgroud)
要向ListView添加项目,我添加了一个字符串数组和string.xml
<resources>
<string name="app_name">Test</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string-array name="Contents">
<item>Calculator</item>
<item>About Us</item>
</string-array>
</resources>
Run Code Online (Sandbox Code Playgroud)
然后在MainActivity.java中
import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
String[] drawerListItems;
ListView drawerList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
drawerListItems = getResources().getStringArray(R.array.Contents);
drawerList = (ListView) findViewById(R.id.navigationdrawer);
ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,drawerListItems);
drawerList.setAdapter(aa);
setContentView(R.layout.navigation);
}
}
Run Code Online (Sandbox Code Playgroud)
logcat的
06-11 22:31:58.650: E/AndroidRuntime(21891): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stfo.mulator/com.stfo.mulator.MainActivity}: java.lang.NullPointerException
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2269)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread.access$800(ActivityThread.java:139)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1210)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.os.Handler.dispatchMessage(Handler.java:102)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.os.Looper.loop(Looper.java:136)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread.main(ActivityThread.java:5102)
06-11 22:31:58.650: E/AndroidRuntime(21891): at java.lang.reflect.Method.invokeNative(Native Method)
06-11 22:31:58.650: E/AndroidRuntime(21891): at java.lang.reflect.Method.invoke(Method.java:515)
06-11 22:31:58.650: E/AndroidRuntime(21891): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
06-11 22:31:58.650: E/AndroidRuntime(21891): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
06-11 22:31:58.650: E/AndroidRuntime(21891): at dalvik.system.NativeStart.main(Native Method)
06-11 22:31:58.650: E/AndroidRuntime(21891): Caused by: java.lang.NullPointerException
06-11 22:31:58.650: E/AndroidRuntime(21891): at com.stfo.mulator.MainActivity.onCreate(MainActivity.java:19)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.Activity.performCreate(Activity.java:5248)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1110)
06-11 22:31:58.650: E/AndroidRuntime(21891): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2173)
06-11 22:31:58.650: E/AndroidRuntime(21891): ... 11 more
Run Code Online (Sandbox Code Playgroud)
您正在尝试在设置contentView之前查找视图,以便将结果设置为null.
setContentView(R.layout.navigation);向下移动super.onCreate(savedInstanceState);
| 归档时间: |
|
| 查看次数: |
89 次 |
| 最近记录: |