android從activity跳轉到fragment解決

背景:我的問題是在主頁面出現的,硬是要從跳過好幾層的Activity中點擊一下就要跳到主頁面中的任意一個fragment頁面。Activity跳轉到Fragment首先我試過廣播是不好使的,因爲會出現…… after on saveInstance錯誤。

  處理:Activity跳到fragment

  首先明確我們的目的:Activity跳轉到fragment要經過好幾個Activity的跳轉,先從AActivity爲入口AActivity->BActivity->CActivity一直跳轉之後,再從CActivity中跳轉到AActivity的DownloadFragment界面。

  首先,在AActivity的包含的fragment其中的personFragment中要跳到BActivity要這樣寫:


  1. startActivityForResult(new Intent(context, BActivity.class),1); //帶值是1的請求碼過去

     
  然後,在BActivity中要跳轉到CActivity的按鈕點擊事件中也寫:

  1. startActivityForResult(new Intent(context, CActivity.class),1); //帶值是1的請求碼過去  


  然後,到了終點CActivity了,到了這兒我就是要點擊按鈕事件一下子跳轉到AActivity的DownloadFragment的頁面去。這兒點擊事件中設置一個結果碼finish掉自己返回:

  1. setResult(2);  //結果碼和請求碼互不影響,設值任意  



  1. finish();  


  然後,在BActivity中,重寫一個方法判斷結果碼和請求碼,如果正確再finish掉自己:
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(requestCode, resultCode, data);  
        if (requestCode == 1 && resultCode == 2) {  
            setResult(2);  
            finish();  
        }   
    }  


  然後,又回到了AActivity的其中一個personFragment那個入口了頁面了。在這個頁面中重寫方法再判斷一下:
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        super.onActivityResult(requestCode, resultCode, data);  
        if (requestCode == 1 && resultCode == 2) {  
           MainActivity  mainActivity = (MainActivity) getActivity();  
          mainActivity. gotoDownloadFragment ();  
        }   
    }  

  最後,是要在AActivity中寫上:
    private FragmentManager fmanager;  
    private FragmentTransaction ftransaction;  
    public void gotoDownloadFragment() {    //去下載頁面  
        fmanager = getSupportFragmentManager();  
    ftransaction = fmanager.beginTransaction();  
    DownloadFragment  mDownloadFragment = new DownloadFragment();  
    ftransaction.replace(R.id.rl_fragment_container, mDownloadFragment);  
    ftransaction.commit();  
    }  


好了,大功告成!思路跟上一篇差不多,還有不管是用Activity或fragment作爲入口都是可以的。這個就是,從哪兒進入,就得從哪兒出來。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章