0
我想從菜單項打開片段。我有三個項目在操作欄上: 列表,編輯,設置和兩個片段現在addfragment和countriesListFragment。有一個嵌套在活動中的片段,我希望 在選擇菜單項時更改活動中的片段。通過菜單項替換片段項目
我OnOptionsItemSelected(菜單項項)方法:
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
if (item.getItemId()==R.id.list)
{
Toast.makeText(this,"list fragment", Toast.LENGTH_SHORT).show();
Fragment fr = new CountriesListFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.fragment1,fr);
ft.commit();
}
if (item.getItemId()==R.id.edit)
{
Fragment fr = new addFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(R.id.fragment1,fr);
ft.commit();
}
if (item.getItemId()==R.id.setting)
{
}
return super.onOptionsItemSelected(item);
}
不幹活不知道哪裏出了問題。 爲什麼我不能取代碎片?
我找到了答案。 此行是錯誤的:
Fragment fr = new CountriesListFragment();
正確的版本:
CountriesListFragment fr = new CountriesListFragment();
請詳細說明。什麼「不工作」。你期望發生什麼,實際發生了什麼? – Kuffs
@kuffs不工作意味着:「不幸的是,skullite已經停止。」我期望片段在活動中取代。 – klaymen
編輯您的問題,以包括顯示錯誤的堆棧跟蹤 – Kuffs