fragment與activity之間的跳轉實現

       fragment中文譯爲碎片,與fragmentLayout幀佈局搭配使用,它是activity的一部分,是分割出來顯示視圖的,展示頁面的,是輕量級的。fragment是3.0以後出現的,是google爲平板專門分割出來的,後來開發者發現這個東西非常好用就遷移到手機上了。
       可是fagment和activity之間的跳轉與activity之間的跳轉還是有區別的,還記得四大組件之間都需要Context這個參數一般用this,getApplication或類名.this來進行連接,而fragment中使用getActivity()來作爲上下文的參數被傳遞。所以在fragment如果需要傳Context就傳getActivity()
下面具體介紹一下fragment與activity之間是如何進行跳轉的:
一,從一個activity跳轉到另一個fragment中
1,在activity中拿到fragment的管理器,開始事物用fragment去代替幀佈局最後提交,代碼如下:
public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        open01(null);

    }

    public void open01(View v) {
        show(new BaseFragment(R.layout.f01));
    }
public void show(Fragment f) {
        FragmentManager fm = this.getSupportFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fl_container, f);
        ft.commit();
    }
}
2,在將要跳轉的frament中在onCreateView方法中加載即可,代碼如下:
public class Fragment01 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View view = View.inflate(getActivity(), R.layout.f01, null);
        
        return view;
    }
}
如果多創建幾個frament的類就可以直接進行fragment的跳轉
二,從當前fragment中跳轉到activity中,這個過程和activity之間的跳轉類似,都是利用intent,代碼如下:
Intent intent=new Intent(getActivity(), OtherActivity.class);
startActivity(intent);
因爲fragment可以使用getActivity()直接訪問到activity實例
三,如果是從fragment跳轉到activity中,然後想從這個activity中再跳轉回fragment,這時直接finish這個activity即可。

fragment與activity之間的通信:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章