繁体   English   中英

如何在抽屉式导航菜单项上切换到列表视图

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM