![](/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.