【问题标题】:actionBar.setHomeButtonEnabled gives error in fragment as null pointer exceptionactionBar.setHomeButtonEnabled 在片段中作为空指针异常给出错误
【发布时间】:2014-09-06 10:46:59
【问题描述】:

我正在尝试在片段中创建可滑动的标签。所以在 viewpager 中添加标签。但它给了我错误 当 actionBar.setHomeButtonEnabled(false) 作为空指针异常时无法进行活动。我正在尝试解决过去两天的问题但无法解决。请帮我解决它。请找到我的 Fragment 类。

公共类 HomeFragment 扩展了 Fragment 实现 ActionBar.TabListener{

View FaramentView;
private FragmentActivity context;

private ViewPager viewPager;
private TabsPagerAdapter mAdapter;
private ActionBar actionBar;
// Tab titles
private String[] tabs = { "Top Rated", "Games", "Movies" };


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
    FaramentView = inflater.inflate(R.layout.home_fragment, null, false); 

    return FaramentView;

}

@Override public void onAttach(Activity activity) {

    context = (FragmentActivity) activity;


    super.onAttach(activity);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB) @Override
public void onActivityCreated(Bundle savedInstanceState) 
{

    super.onActivityCreated(savedInstanceState);
    // Initilization
            viewPager = (ViewPager) FaramentView.findViewById(R.id.pager);
             actionBar = context.getActionBar();

            mAdapter = new TabsPagerAdapter(context.getSupportFragmentManager());

            viewPager.setAdapter(mAdapter);
            actionBar.setHomeButtonEnabled(false);
            actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);        

            // Adding Tabs
            for (String tab_name : tabs) {
                actionBar.addTab(actionBar.newTab().setText(tab_name)
                        .setTabListener(this));
            }

            /**
             * on swiping the viewpager make respective tab selected
             * */
            viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {

                @Override
                public void onPageSelected(int position) {
                    // on changing the page
                    // make respected tab selected
                    actionBar.setSelectedNavigationItem(position);
                }

                @Override
                public void onPageScrolled(int arg0, float arg1, int arg2) {
                }

                @Override
                public void onPageScrollStateChanged(int arg0) {
                }
            });
}

public LayoutInflater getSystemService(String layoutInflaterService) {
    // TODO Auto-generated method stub
    return null;
}

@Override
public void onTabReselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}

@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}

@Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}  

}

【问题讨论】:

  • 你使用的是android.app.Activity还是android.support.v7.app.ActionBarActivity?
  • 使用android.app.Activity
  • 啊,我刚看到你的 FragmentActivity。如果您使用 FragmentActivity 我相信您需要使用 getSupportActionBar()
  • 我正在使用 Fragment 我们可以在 Fragment 中制作标签
  • 替换行 actionBar = context.getActionBar(); with actionBar = context.getSupportActionBar();

标签: android android-viewpager fragment


【解决方案1】:

在你的 Android 清单文件中添加

android:theme="@android:style/Theme.Holo"

我想将此作为评论添加,但由于声誉数量众多,我无法添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 2013-05-14
    • 2016-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多