30/09/2018, 23:02

Bị lỗi khi Custom ActionBar trong Fragment của Android?

public class FraSale extends Fragment {
    View view;
    View mCustomView;
    LayoutInflater inflator;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fsale_list_detail, container, false);
        setHasOptionsMenu(true);

        ActionBar actionBar = getActivity().getActionBar();
        inflator = LayoutInflater.from(getActivity());
        inflator.inflate(R.layout.actionbar_sale, null);

        mCustomView = inflator.inflate(R.layout.actionbar_sale, null);
        actionBar.setCustomView(mCustomView);
        actionBar.setDisplayHomeAsUpEnabled(false);
        actionBar.setDisplayUseLogoEnabled(false);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setDisplayShowCustomEnabled(true);

        Spinner spn1 = (Spinner) mCustomView.findViewById(R.id.spnBarMonth);
        Spinner spn2 = (Spinner) mCustomView.findViewById(R.id.spnBarYear);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, getResources().getStringArray(R.array.array_test));

        spn1.setAdapter(adapter);
        spn2.setAdapter(adapter);

        return view;
    }

Code mình ở trên và mình muốn custom riêng cái ActionBar theo ý mình trong Fragment nhưng nó gặp lỗi như vậy :

Attempt to invoke virtual method ‘void android.app.ActionBar.setCustomView(android.view.View)’ on a null object reference

Lỗi chỉ ở đây
actionBar.setCustomView(mCustomView);

Cám ơn mọi người nhiều

Quân viết 01:06 ngày 01/10/2018

activity có actionbar không, nếu k có thì lỗi là đúng rồi

Minh Thông Trương viết 01:12 ngày 01/10/2018
TabLayout tabLayout;
ViewPager tabViewPager;
Calendar calendar;
AdaViewPager adapter;
InterfaceRefresh interfaceRefresh;

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

    calendar = Calendar.getInstance();
    Static.DayOpen = calendar;

    tabViewPager = (ViewPager) findViewById(R.id.viewpager);
    tabViewPager.setOnPageChangeListener(this);
    
    adapter = new AdaViewPager(getFragmentManager());
    adapter.addFragment(new FraClean());
    adapter.addFragment(new FraList());
    adapter.addFragment(new FraSale());
    adapter.addFragment(new FraPolishing());
    adapter.addFragment(new FirstFragment());
    adapter.addFragment(new FraOption());
    viewPaper.setAdapter(adapter);

    tabLayout = (TabLayout) findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(tabViewPager);
    setupTabIcons();

}

Đây là file MainActivity.java của mình bạn giải thích rõ xí đc k? Cám ơn nhiều

Quân viết 01:05 ngày 01/10/2018

cái quan trọng là extends activity nào và style apply cho activity thì không đăng lên

Dương Nguyễn Văn viết 01:11 ngày 01/10/2018

Bạn xem style của bạn có actionbar k?

Bài liên quan
0