提问者:小点点

制表符片段教程在生成时失败


我正在使用本教程来自学标签片断。粘贴并运行MainActivity时,会出现以下错误:

原因:java.lang.NullPointerException:试图对HSS.FragmentTabstutorial.MainActivity.OnCreate(MainActivity.java:27)处的空对象引用调用虚拟方法“void android.app.actionBar.SetDisplayShowHomeEnabled(boolean)”

因此,我将activity更改为ActionBarActivity,并将ActionBar更改为getSupportActionBar。现在由于getSupportActionBar,它将无法构建,声明“不兼容类型”。我该怎么办?

下面是主要代码:

import android.app.Activity;
import android.os.Bundle;
import android.app.ActionBar;

import android.app.Fragment;
import android.support.v7.app.ActionBarActivity;

public class MainActivity extends ActionBarActivity {

// Declaring our tabs and the corresponding fragments.
ActionBar.Tab bmwTab, fordTab, toyotaTab;
Fragment bmwFragmentTab = new FragmentTab1();
Fragment toyotaFragmentTab = new FragmentTab2();
Fragment fordFragmentTab = new FragmentTab3();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Asking for the default ActionBar element that our platform supports.
    ActionBar actionBar = getSupportActionBar();

    // Screen handling while hiding ActionBar icon.
    actionBar.setDisplayShowHomeEnabled(false);

    // Screen handling while hiding Actionbar title.
    actionBar.setDisplayShowTitleEnabled(false);

    // Creating ActionBar tabs.
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    // Setting custom tab icons.
    bmwTab = actionBar.newTab().setText("Fragment1");
    toyotaTab = actionBar.newTab().setText("Fragment2");
    fordTab = actionBar.newTab().setText("Fragment3");

    // Setting tab listeners.
    bmwTab.setTabListener(new TabListener(bmwFragmentTab));
    toyotaTab.setTabListener(new TabListener(toyotaFragmentTab));
    fordTab.setTabListener(new TabListener(fordFragmentTab));

    // Adding tabs to the ActionBar.
    actionBar.addTab(bmwTab);
    actionBar.addTab(toyotaTab);
    actionBar.addTab(fordTab);
}

}


共1个答案

匿名用户

使用android.support.v7.app.actionbar代替import android.app.actionbar

这确保了与支持库的其余部分的兼容性,包括actionbaractivity