1

我按照教程为我的 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

我很确定我给了你所有重要的代码。如果我忘记了什么,请告诉我。

4

1 回答 1

0

感谢这位用户,我想通了!我的班级 bifrost 中的第 160 行有问题。

ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);

这两行引起了所有的麻烦!我猜如果您有选项卡布局,您将无法启用操作栏。

于 2013-07-15T20:13:57.053 回答