how to pass string data from activity to fragment?

后端 未结 5 1310
被撕碎了的回忆
被撕碎了的回忆 2020-12-11 13:04

I want to pass string value from activity to fragment. For that I\'m using bundle for transferring string value.

PUT STRING ACTIVITY Passing string

5条回答
  •  独厮守ぢ
    2020-12-11 13:34

    make public first in activity that object you required in fragment. then you can use like ((ACtivityName)getActivity()).objectName; i hope it help.this is not best way to pass data into fragment.

    there are some other way also. create constructor of your fragment class and pass it and save in fragment like:

        public MyFragment(String data){
           this.data = data;
        }
    

    also you can use as bundle @james answer.

    EDIT:-

    First Way

    private class MyFeagment extends Fragment {
        private String data;
        private Object myObject;
    
        public MyFeagment(String data, Object anyObject) {
            this.data = data;
            this.myObject = myObject;
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            Log.i("My Fragment", "data :: " + data + " and myObject :"
                    + myObject);
            return super.onCreateView(inflater, container, savedInstanceState);
        }
    }
    

    let's say it is your framgnet. and put this code in your activity

    FragmentManager manager = getSupportFragmentManager();
        FragmentTransaction transaction = manager.beginTransaction();
        transaction.add(R.id.fragment_container, new MyFeagment("My Data",
                "data"));
        transaction.commit();
    

提交回复
热议问题