簡體   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