1. 程式人生 > >創建Fragment和傳遞數值

創建Fragment和傳遞數值

get puts java urn ransac win tin find on()

下面在擴展一下創建Fragment和傳遞數值

如果我們不需要傳遞數值,那就直接可以在宿主activity中,跟平常一樣創建fragment,但是如果我們需要傳遞數據的話,可以使用newInstance(數據)方法來傳遞,這個方法是自己定義的,但是是定義在Fragment中的一個靜態方法。

static MyFragment newInstance(String s){
        MyFragment myFragment = new MyFragment();
        Bundle bundle = new Bundle();
        bundle.putString("DATA",s);
        myFragment.setArguments(bundle);
        return myFragment;
    }

//同樣,在onCreatView中直接獲取這個值
 @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.layout_fragment,container,false);
        Bundle bundle = getArguments();
        String data = bundle.getString("DATA");
        tv = (TextView) view.findViewById(R.id.id_fm_tv);
        if(data != null){
            tv.setText(data);
        }
        return view;
    }

在宿主activity中,創建Fragment

 FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.setCustomAnimations(android.R.anim.fade_in,android.R.anim.fade_out);
        fragment1 = MyFragment.newInstance("這是第一個fragment");//這裏只需要直接調用這個方法,就創建了一個fragment
        fragment2 = MyFragment.newInstance("這是第二個fragment");
        fragment3 = MyFragment.newInstance("這是第三個fragment");

創建Fragment和傳遞數值