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.
Fragmentler Arası Veri Transferi
6
●224
- 08-12-2019, 02:10:12
- 08-12-2019, 23:12:16HavucApps adlı üyeden alıntı: mesajı görüntüle
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:18Hocam 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:29Veri 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")); }