MainActivity:
@Override
public?void?onClick(View?view)?{
????switch?(view.getId())?{
????????case?R.id.bt_user:
????????????cf.setinitif(new?Interface_ChangeFragment()?{
????????????????@Override
????????????????public?Fragment?initif()?{
????????????????????return?tab_user;
????????????????}
?
????????????????@Override
????????????????public?int?initTAG()?{
????????????????????return?3;
????????????????}
????????????});
????????????break;
????????case?R.id.bt_find:
????????????cf.setinitif(new?Interface_ChangeFragment()?{
????????????????@Override
????????????????public?Fragment?initif()?{
????????????????????return?tab_found;
????????????????}
?
????????????????@Override
????????????????public?int?initTAG()?{
????????????????????return?2;
????????????????}
????????????});
????????????break;
????????case?R.id.bt_watchmoive:
????????????cf.setinitif(new?Interface_ChangeFragment()?{
????????????????@Override
????????????????public?Fragment?initif()?{
????????????????????return?tab_watchMoive;
????????????????}
?
????????????????@Override
????????????????public?int?initTAG()?{
????????????????????return?1;
????????????????}
????????????});
????????????break;
????????case?R.id.bt_selectsong:
????????????cf.setinitif(new?Interface_ChangeFragment()?{
????????????????@Override
????????????????public?Fragment?initif()?{
????????????????????return?tab_selectSong;
????????????????}
?
????????????????@Override
????????????????public?int?initTAG()?{
????????????????????return?0;
????????????????}
????????????});
????????????break;
????????case?R.id.bt_frist:
????????????break;
????}
?????
?????
?????
?????
????接口的實現類:
????public?class?ChangeFragment?extends?FragmentActivity?{
????int?TAG;
????Tab_selectSong?tab_selectSong;
????Tab_watchMoive?tab_watchmoive;
????Tab_Found?tab_found;
????Tab_User?tab_user;
????public?void?setinitif(Interface_ChangeFragment?interface_changeFragment)?{
????????FragmentManager?manager?=?getSupportFragmentManager();
????????FragmentTransaction?fts?=?manager.beginTransaction();
????????if?(interface_changeFragment.initif()?==?null)?{
????????????TAG?=?interface_changeFragment.initTAG();
????????????switch?(TAG)?{
????????????????case?0:
???????????????????tab_selectSong?=?new?Tab_selectSong();
????????????????????fts.add(R.id.activity_fragment,tab_selectSong);
????????????????????hideall();
????????????????????fts.show(tab_selectSong);
????????????????????fts.commit();
????????????????????break;
????????????????case?1:
????????????????????tab_watchmoive?=?new?Tab_watchMoive();
????????????????????fts.add(R.id.activity_fragment,tab_watchmoive);
????????????????????hideall();
????????????????????fts.show(tab_watchmoive);
????????????????????fts.commit();
????????????????????break;
????????????????case?2:
????????????????????tab_found?=?new?Tab_Found();
????????????????????fts.add(R.id.activity_fragment,tab_found);
????????????????????hideall();
????????????????????fts.show(tab_found);
????????????????????fts.commit();
????????????????????break;
????????????????case?3:
???????????????????tab_user?=?new?Tab_User();
????????????????????fts.add(R.id.activity_fragment,tab_user);
????????????????????hideall();
????????????????????fts.show(tab_user);
????????????????????fts.commit();
????????????????????break;
????????????}
????????}?else?{
????????????TAG?=?interface_changeFragment.initTAG();
????????????switch?(TAG)?{
????????????????case?0:
????????????????????hideall();
????????????????????fts.show(tab_selectSong);
????????????????????fts.commit();
????????????????????break;
????????????????case?1:
????????????????????hideall();
????????????????????fts.show(tab_watchmoive);
????????????????????fts.commit();
????????????????????break;
????????????????case?2:
????????????????????hideall();
????????????????????fts.show(tab_found);
????????????????????fts.commit();
????????????????????break;
????????????????case?3:
???????????????????hideall();
????????????????????fts.show(tab_user);
????????????????????fts.commit();
????????????????????break;
????????????}
?
????????}
????}
?
????private?void?hideall()?{
????????FragmentManager?manager?=?getSupportFragmentManager();
????????FragmentTransaction?fts?=?manager.beginTransaction();
????????if(tab_selectSong!=null)
????????{
????????????fts.hide(tab_selectSong);
????????}
????????if(tab_watchmoive!=null)
????????{
????????????fts.hide(tab_watchmoive);
????????}
????????if(tab_found!=null)
????????{
????????????fts.hide(tab_found);
????????}
????????if(tab_user!=null)
????????{
????????????fts.hide(tab_user);
????????}
????}
}
?
用的是按鈕的點擊事件new出一個匿名內部類,之所以這么做,是不想讓主MainAcitity變得臃腫,可是
結果出錯了,Log打印出來是java.lang.IllegalStateException:?Activity?has?been?destroyed
?
求大神解答為什么啊?難道不可以這么寫嗎?
我也是一個新手,才開始寫我的第一個APP。求大神解答
求大神解答,利用接口實現Fragment切換,為什么Log打印說Activity被銷毀了
Rick_James
2016-12-20 00:30:20