我有一个fragment A
,其中有一个gridView
,其中有一个项目,现在当我单击其中一个项目时,它会创建一个Fragment B
的新实例,其中包含一些arguments
(字符串数组)。
然后在onCreateView
中,我得到了这个字符串数组,现在
我要将其设置为标签布局的标签。
为此,我为每个选项卡的布局创建了一个TabFragment
(一个都是相同的)和一个tabViewPagerAdapter
然后在Fragment B
中,我得到了多余的Arguments(一个String数组)并将其设置为TabLayout。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle bundle = this.getArguments();
if (bundle != null) {
// handle your code here.
Toast.makeText(getActivity(), "Bundle is getting the thing", Toast.LENGTH_SHORT).show();
tabs = bundle.getStringArray("key");
for (String s: tabs){
Toast.makeText(getActivity(), s, Toast.LENGTH_SHORT).show();// it is showing the toast with all elements of the array
}
}
//viewpager
ViewPager viewPager = view.findViewById(R.id.book_viewpager);
TabLayout tabLayout = includeView.findViewById(R.id.tabs);
TabViewPagerAdapter adapter = new TabViewPagerAdapter(getActivity().getSupportFragmentManager(), tabs);//this tab is generating null pointer exception but tab have elements in it.
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager, true);
return view;
}
这就是我用Fragment A
发送参数的方式
String text = (String) tempText.getText();
Bundle bundle = new Bundle();
if (text.equalsIgnoreCase("science")){
bundle.putStringArray("key",science); // Put anything what you want
}else {
bundle.putStringArray("key",engineering); // Put anything what you want
}
BooksFragment fragment = new BooksFragment();
fragment.setArguments(bundle);
assert getFragmentManager() != null;
getFragmentManager().beginTransaction().replace(R.id.main_container, fragment).commit();
但是似乎没有任何效果。尽管tabs
中包含元素,但片段B中的注释行调用了空指针异常。
我想要实现的是,在单击
grid view
的{{1}}项的同时,如果有Fragment A
,可以更改tablaout
的{{1}}的标签另一种方式,请写
Logcat
java.lang.NullPointerException:尝试获取空数组的长度 在com.medit.persuaeture.Adapters.TabViewPagerAdapter.getCount(TabViewPagerAdapter.java:27) 在android.support.v4.view.ViewPager.setAdapter(ViewPager.java:526) 在com.medit.persuaeture.Fragments.Main.BooksFragment.onCreateView(BooksFragment.java:63)
TabViewPagerAdapter'
Fragment B