0

私はこのアイテムをクリックするとリストビューを開きたいと思います。私はリストフラグメントを使用していました。私はナビゲーションドロワーのメニューアイテムをクリックするとデフォルトの引き出しナビゲーションアクティビティをカスタマイズしました、全体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

でこのコードを置き換え、これはあなたがListFragment –

+0

にあなたがexaggrateでしている間、あなたのnavigationDrawerメニューはあなたにも見える方法ですもう少し、どこでフラグメントタグを追加することができますか?以下の – blackHawk

+0

私はあなたがこれをどのように実装できるかという考え方に答えました。これで、アクティビティにフレームを追加するだけで、そのフレームにフラグメントを置き換えることができ、ナビゲーションビューが先のフラグメントに見えるようになります –

答えて

0

navigationDrawerMenuを追加したフレームを最初に追加します。

FragmentTransaction transact=getSupportFragmentManager().beginTransaction(); 
transact.add(android.R.id.content,listfrag,"lstfragment"); 
transact.commit(); 

単にあなたnavigationDrawerアクティビティの内部フレームまたはコンテナ内listFragmentを開く

FragmentTransaction transact=getSupportFragmentManager().beginTransaction(); 
transact.replace(R.id.your_frame, listfrag); 
transact.addToBackStack(null); // or you can add some string 
transact.commit(); 
関連する問題