![](/img/trans.png)
[英]how to open another menu on click of item on the default menu of navigation drawer
[英]How to switch to listview on drawer navigation menu item click
我想在单击该项目时打开一个列表视图,我使用了listfragment和抽屉导航,当我单击导航抽屉的菜单项时我自定义了默认的抽屉导航活动,整个listfragment会打开,而不是打开抽屉导航中的片段,并且由于这是我无法返回到抽屉导航活动(用于单击其他项目),因为列表片段作为单独的片段打开,这是我的代码
public boolean onNavigationItemSelected(MenuItem item) {
// Handle navigation view item clicks here.
int id = item.getItemId();
if (id == R.id.teams) {
Toast.makeText(this, "Teams clicked", Toast.LENGTH_SHORT).show();
ListFragment listfrag
=
(ListFragment)getSupportFragmentManager().findFragmentByTag("listfragment");
if(listfrag==null){
listfrag =new listFragment();
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(android.R.id.content,listfrag,"lstfragment");
transact.commit();
}
和片段代码
public class listFragment extends ListFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup
container, Bundle savedInstanceState) {
ViewGroup rootview =
(ViewGroup) inflater.inflate(R.layout.customlistview, container, false);
//data source
String[] from = { "flag","txt","cur" };
ArrayAdapter<String> adapter=new
ArrayAdapter<String>(getActivity(),R.layout.listviewitem, R.id.tvteamsname, from);
setListAdapter(adapter);
// Retain the ListFragment instance across Activity re-creation
setRetainInstance(true);
return rootview;
}
首先,在您添加了navigationDrawerMenu
Activity
中添加一个框架。
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.add(android.R.id.content,listfrag,"lstfragment");
transact.commit();
将此代码替换为
FragmentTransaction transact=getSupportFragmentManager().beginTransaction();
transact.replace(R.id.your_frame, listfrag);
transact.addToBackStack(null); // or you can add some string
transact.commit();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.