我在我的应用程序中使用带滑动标签的导航抽屉,我想根据标签更改导航抽屉的项目列表。例如,在带有项目1项目2的选项卡1导航抽屉和带有项目3和项目4的选项卡2导航抽屉中。 这是我的导航抽屉片段类的代码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_navigation_drawer, container, false);;
recyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
recyclerAdapter = new RecyclerAdapter(getActivity(), getData());
recyclerView.setAdapter(recyclerAdapter);
//recyclerAdapter.setClickListener(this);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
/*recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(),
recyclerView, new ClickListener() {
@Override
public void onClick(View view, int position) {
startActivity(new Intent(getActivity(), SubActivity.class));
}
@Override
public void onLongClick(View view, int position) {
startActivity(new Intent(getActivity(), SubActivity.class));
}
} ));*/
return view;
}
public List<Information> getData(){
List<Information> data = new ArrayList<>();
int[] icons = {R.drawable.abc_ic_ab_back_mtrl_am_alpha, R.drawable.abc_ic_ab_back_mtrl_am_alpha,
R.drawable.abc_ic_ab_back_mtrl_am_alpha};
String[] title = {"Title 1", "Title 2", "Title 3"};
for (int i=0; i<icons.length; i++) {
Information information = new Information();
information.setResIdImage(icons[i]);
information.setText(title[i]);
data.add(information);
}
return data;
}
这是制表类的代码
public class Tab2 extends NavigationDrawerFragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tab2, container, false);
TextView textView = (TextView) view.findViewById(R.id.textView);
textView.setText("The position is 2");
return view;
}
}
所以,我想从tab2类更改navigationDrawerFragment类的getData()方法项。 谢谢。
答案 0 :(得分:0)
您可以添加此
private NavigationDrawerAdapter adapter;
private static String[] titles = null;
private static String[] icons = null;
...
public void setItems(String[] titles,String[] icons) {
// drawer labels
this.titles = titles;
this.icons = icons;
this.adapter.data = getData();
}
public static List<NavDrawerItem> getData() {
List<NavDrawerItem> data = new ArrayList<>();
// preparing navigation drawer items
for (int i = 0; i < titles.length; i++) {
NavDrawerItem navItem = new NavDrawerItem();
navItem.setTitle(titles[i]);
navItem.setIcon(icons[i]);
data.add(navItem);
}
return data;
}
到FragmentDrawer类