Cara menggunakan setArguments() dan getArguments() metode dalam Fragmen?

Saya mempunyai 2 fragmen: (1)Frag1 (2)Frag2.

Frag1

bundl = new Bundle();
bundl.putStringArrayList("elist", eList);

Frag2 dv = new Frag2();
dv.setArguments(bundl);
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.the_fragg,dv);
ft.show(getFragmentManager().findFragmentById(R.id.the_fragg)); 
ft.addToBackStack(null);
ft.commit();

Bagaimana cara mendapatkan data ini di Frag2?

Sebut saja getArguments() dalam Frag2's onCreateView() metode:

public class Frag2 extends Fragment {

     public View onCreateView(LayoutInflater inflater,
         ViewGroup containerObject,
         Bundle savedInstanceState){
         //here is your arguments
         Bundle bundle=getArguments(); 

        //here is your list array 
        String[] myStrings=bundle.getStringArray("elist");   
     }
}
Komentar (5)

Misalnya: Menambahkan data:-

   Bundle bundle = new Bundle();
   bundle.putString("latitude", latitude);
   bundle.putString("longitude", longitude);
   bundle.putString("board_id", board_id);
   MapFragment mapFragment = new MapFragment();
   mapFragment.setArguments(bundle);

Misalnya: Mendapatkan data :-

String latitude =  getArguments().getString("latitude")
Komentar (0)
Larutan

Anda memiliki sebuah metode yang disebut getArguments() milik Fragmen kelas.

Komentar (0)

di Frag1:

Bundle b= new Bundle();

b.putStringArray("arrayname that use to retrive in frag2",StringArrayObject);

Frag2.setArguments(b);

di Frag2:

Bundle b=getArguments();

String [] stringArray=b.getStringArray("arrayname that passed in frag1");

ini yang sederhana.

Komentar (1)

untuk orang-orang seperti saya yang mencari untuk mengirim benda-benda lain dari primitif, karena anda dapat't membuat parameter konstruktor dalam fragmen anda, hanya menambahkan setter pengakses dalam fragmen ini selalu bekerja untuk saya.

Komentar (1)

Instantiating Fragmen cara yang benar!

getArguments() setArguments() metode tampaknya sangat berguna ketika datang untuk instantiate sebuah Fragmen menggunakan metode statis. yaitu Myfragment.createInstance(String msg)

Bagaimana untuk melakukannya?

Fragmen kode

public MyFragment extends Fragment {

    private String displayMsg;
    private TextView text;

    public static MyFragment createInstance(String displayMsg)
    {
        MyFragment fragment = new MyFragment();
        Bundle args = new Bundle();
        args.setString("KEY",displayMsg);
        fragment.setArguments(args);           //set
        return fragment;
    }

    @Override
    public void onCreate(Bundle bundle)
    {
        displayMsg = getArguments().getString("KEY"):    // get 
    }

    @Override
    public View onCreateView(LayoutInlater inflater, ViewGroup parent, Bundle bundle){
        View view = inflater.inflate(R.id.placeholder,parent,false);
        text = (TextView)view.findViewById(R.id.myTextView);
        text.setText(displayMsg)    // show msg
        returm view;
   }

}

Let's mengatakan anda ingin lulus String sekaligus menciptakan sebuah Instance. Ini adalah bagaimana anda akan melakukannya.

MyFragment.createInstance("This String will be shown in textView");

Baca Lebih Lanjut

1) Mengapa Myfragment.getInstance(String msg) lebih disukai atas baru MyFragment(String msg)? 2) kode Contoh pada Fragmen

Komentar (1)

panggilan getArguments di onCreateView() metode

Komentar (0)