我按照本教程为我的 android 应用程序实现了选项卡布局。我已经有一个我正在开发的现有 android 应用程序,所以我不得不稍微调整一下教程。我很确定我所做的一切都完全按照我应该做的,但是每次我单击应该打开选项卡布局活动的按钮时,我的应用程序都会崩溃。
主 tabLayout 活动:
public class Bifrosttabs extends TabActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_bifrosttabs);
TabHost tabHost = getTabHost();
//CRAFTING TAB
TabSpec craftTabSpec = tabHost.newTabSpec("Crafting");
craftTabSpec.setIndicator("Crafting", getResources().getDrawable(R.drawable.weaponsmith_logo));
Intent craftIntent = new Intent(this, Bifrost.class);
craftTabSpec.setContent(craftIntent);
//ADDITION INFO TAB
TabSpec infoTabSpec = tabHost.newTabSpec("Info");
infoTabSpec.setIndicator("Info", getResources().getDrawable(R.drawable.craft_info));
Intent infoIntent = new Intent(this, Bifrostinfo.class);
infoTabSpec.setContent(infoIntent);
tabHost.addTab(craftTabSpec);
tabHost.addTab(infoTabSpec);
}
主 tabLayout 活动 XML 文件:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
打开选项卡布局活动的按钮方法:
public void onClick (View v){
switch (v.getId()){
case R.id.button1:
Intent bifrost = new Intent (MainActivity.this, Bifrosttabs.class);
startActivity(bifrost);
break;
...rest of the code for other buttons
整个 Logcat 文件:
07-15 17:57:00.084: E/jdwp(14846): Failed writing handshake bytes: Broken pipe (-1 of 14)
07-15 17:57:06.186: E/AndroidRuntime(14846): FATAL EXCEPTION: main
07-15 17:57:06.186: E/AndroidRuntime(14846): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matthewstudios.gw2legendary/com.example.gw2legendary.tablayouts.Bifrosttabs}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matthewstudios.gw2legendary/com.example.gw2legendary.craftingactivities.Bifrost}: java.lang.NullPointerException
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.access$600(ActivityThread.java:141)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.os.Handler.dispatchMessage(Handler.java:99)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.os.Looper.loop(Looper.java:137)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.main(ActivityThread.java:5041)
07-15 17:57:06.186: E/AndroidRuntime(14846): at java.lang.reflect.Method.invokeNative(Native Method)
07-15 17:57:06.186: E/AndroidRuntime(14846): at java.lang.reflect.Method.invoke(Method.java:511)
07-15 17:57:06.186: E/AndroidRuntime(14846): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
07-15 17:57:06.186: E/AndroidRuntime(14846): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
07-15 17:57:06.186: E/AndroidRuntime(14846): at dalvik.system.NativeStart.main(Native Method)
07-15 17:57:06.186: E/AndroidRuntime(14846): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matthewstudios.gw2legendary/com.example.gw2legendary.craftingactivities.Bifrost}: java.lang.NullPointerException
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.startActivityNow(ActivityThread.java:2023)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:749)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.widget.TabHost.setCurrentTab(TabHost.java:413)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.widget.TabHost.addTab(TabHost.java:240)
07-15 17:57:06.186: E/AndroidRuntime(14846): at com.example.gw2legendary.tablayouts.Bifrosttabs.onCreate(Bifrosttabs.java:34)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.Activity.performCreate(Activity.java:5104)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-15 17:57:06.186: E/AndroidRuntime(14846): ... 11 more
07-15 17:57:06.186: E/AndroidRuntime(14846): Caused by: java.lang.NullPointerException
07-15 17:57:06.186: E/AndroidRuntime(14846): at com.example.gw2legendary.craftingactivities.Bifrost.onCreate(Bifrost.java:160)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.Activity.performCreate(Activity.java:5104)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
07-15 17:57:06.186: E/AndroidRuntime(14846): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
07-15 17:57:06.186: E/AndroidRuntime(14846): ... 21 more
07-15 17:57:14.967: E/fb4a(:<default>):MmsConfig(14952): MmsConfig.loadMmsSettings mms_config.xml missing uaProfUrl setting
我很确定我给了你所有重要的代码。如果我忘记了什么,请告诉我。