• 08-12-2019, 02:10:12
    #1
    Fragmentler Arası Veri




    Merhaba arkadaşlar. Uygulamamda swipepage kullanıyorum toplamda 3 adet tab'ım ve haliyle 3 tane de fragment'im var. Fragment A da edittexte bulunan bir String verisini diğer fragmenteki textview e nasıl aktarabilirim?
    İngilizce dökümanları karıştırdım biraz ama fazla birşey anlamadım. Basit kod yapılarıyla açıklamalarda bulunursanız çok sevinirim. Şimdiden teşekkürler.
  • 08-12-2019, 02:39:20
    #2

    youtube - Bu videodan bilgi edinebilirsiniz.
  • 08-12-2019, 15:45:07
    #3
    Bundle kullanabilirsin cok basit bir sekilde.
    Eventbus 2. secenegin olabilir.
  • 08-12-2019, 17:48:53
    #4
    yukarıdaki arkadaş bahsetmiş, bundle yapısı işini görür hocam.
  • 08-12-2019, 23:12:16
    #5
    HavucApps adlı üyeden alıntı: mesajı görüntüle
    Bundle kullanabilirsin cok basit bir sekilde.
    Eventbus 2. secenegin olabilir.

    Kodlarım aşağıdaki gibi fakat, fragment B tab'ına tıklayınca hata alıyorum. sıkıntı neyde olabilir.
    Fragment A:
    b8 = (Button)view.findViewById(R.id.button8);b8.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Tab2Fragment fragmentb = new Tab2Fragment(); Bundle args = new Bundle(); args.putString("isim", "Alper"); fragmentb.setArguments(args); }});
    Fragment B:
    public class Tab2Fragment extends Fragment {    private static final String TAG = "Tab2Fragment";TextView t1;Button b1,b2;    @Nullable    @Override    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {        String k_isim = getArguments().getString("isim");        View view = inflater.inflate(R.layout.tab2_fragment,container,false);        t1 = (TextView)view.findViewById(R.id.textView25);        t1.setText(k_isim);        b2 = (Button)view.findViewById(R.id.button9);        b2.setOnClickListener(new View.OnClickListener()        {            @Override            public void onClick(View v) {                //t1.setText(getArguments().getString("cihaz_adi"));                String cihaz_adi = t1.getText().toString();                //getArguments().getString("cihaz_adi");                if(cihaz_adi == "ACT_CİHAZI"){                    ACT_CİHAZI act_cihazı=new ACT_CİHAZI();                    FragmentManager manager2=getFragmentManager();                    FragmentTransaction transaction2=manager2.beginTransaction();                    transaction2.add(R.id.tab2_fragment, act_cihazı, "ACT CİHAZI");                    transaction2.commit();                }                else if(cihaz_adi == "AĞIRLIK_UZUNLUK_ÖLÇER"){                    AĞIRLIK_UZUNLUK_ÖLÇER auo =new AĞIRLIK_UZUNLUK_ÖLÇER();                    FragmentManager manager3=getFragmentManager();                    FragmentTransaction transaction3=manager3.beginTransaction();                    transaction3.add(R.id.tab2_fragment, auo, "AĞIRLIK UZUNLUK ÖLÇER");                    transaction3.commit();                }                else{                }            }        });        return view;    }
  • 08-12-2019, 23:26:18
    #6
    Hocam kodlari duzgun goruntuleyemiyorum surdan yardim alabilirsiniz.
    https://stackoverflow.com/questions/...other-fragment

    AndroidStudio da ki hatayi iletebilme sansiniz varsa daha iyi olur.
  • 09-12-2019, 13:47:29
    #7
    Veri aktaracağınız fragment'e newInstance ve serializable ekleyiniz. Örnek:
    public static FragmentIsmı newInstance(String data) {
        FragmentIsmıfragment = new FragmentIsmı();
        Bundle bundle = new Bundle();
        bundle.putSerializable("dataIsmi", data);
        fragment.setArguments(bundle);
        return fragment;
    }
    Veri aktarmayı şöyle yapınız:
    FragmentIsmı fragmentIsmi = FragmentIsmı .newInstance("eklenecek data");
    FragmentTransaction transaction = getFragmentManager().beginTransaction();
     transaction.replace(R.id.frame_layout, fragmentIsmi); //Bu bölümde fragmenti FrameLayout'a aktarıyoruz.
      transaction.addToBackStack(null);
    transaction.commit();
    Veriyi çekmek için şunu kullanın:
    if (getArguments() != null) {
        String seninDatan = String.valueOf(getArguments().getSerializable("dataIsmi"));
    }