0

我想打开一个列表视图,当点击这个项目时,我使用了listfragment和抽屉导航我自定义了默认抽屉导航活动,当我点击导航抽屉的菜单项时,整个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; 

} 
+0

只要打开你的navigationDrawer活动中的框架或容器的listFragment,这是你的navigationDrawer菜单怎么也可见于你,而你在ListFragment –

+0

你能exaggrate多一点,我可以在哪里添加片段标签或什么? – blackHawk

+0

下面我已经回答了你如何实现这个想法。现在你只需要添加一个框架给你的活动,然后你可以将任何片段替换为该框架,并且你的导航视图可以看到前面的片段 –

回答

0

首先添加一帧到您的Activity,您已添加navigationDrawerMenu

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(); 
相关问题