Soru & Cevap

Fragment cağırmak ve void'e ulaşmak.. ...

20.06.2015 - 04:40

Herkese merhaba. Üzerinde çalıştığım bir uygulamada sorun yaşıyorum. Listview içindeki herhangi bir item'a tıkladığımda onItemClick event'i çağrılıyor. Event içinde sayfaya yeni bir fragment getirtmek istiyorum ve getirtilen fragment'taki void'e ulaşmak istiyorum. İşlemleri ayrı ayrı yaptığımda sıkıntı olmuyor. Yani önce fragment'ı getirtiyorum. Sonra fragmentteki void'e ulaşıyorum. Ama bunları ayrı ayrı tıklama işleminde değil, tek bir tıklama işleminde yapmak istiyorum. Aynı event'ta yapmaya çalıştığımda ilk olarak getirtmek istediğim fragment gelmiyor ve gelmediği içinde FrgAyarlar değeri null olarak geri dönüyor. Dolayısıyla

FrgAyarlar.Mesaj("sfsdfsfdasf");

işleminde program çöküyor. Kullandığım kod aşağıdadır.. 

lstListe = (Listview) findViewById(R.id.lstListe);

lstListe.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View arg1, int position, long arg3) {
                Fragment Fragment_Sayfa = new FrgAyarlar();
                String Fragment_SayfaTag = "FrgAyarlar";
                
                FragmentTransaction FT = getFragmentManager().beginTransaction();
                FT.add(R.id.LLSayfa, Fragment_Sayfa, Fragment_SayfaTag);
                FT.commit();// Çağırma işlemini yaptırıyoruz..
                
                FrgAyarlar FrgAyarlar = (FrgAyarlar)activity.getFragmentManager().findFragmentByTag(Fragment_SayfaTag);
                       FrgAyarlar.Mesaj("sfsdfsfdasf");
                }
        }
});

 Yardımlarınız için şimdiden teşekkür ederim. Umarım sorunumu anlaşılır bir dille anlatmışımdır..

10 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-30642-1423654279.jpg
Sergius
21.06.2015 - 05:43

Çözümü buldum. Kendi soruma kendim yanıt vereyim. Aynı Activity'de olduğu gibi Fragment çağırırken data Bundle edilebiliniyormuş :))

Fragment'in çağrıldığı Activity'den;

Fragment fragment = new Fragment();
Bundle bundle = new Bundle();
bundle.putInt(key, value);
fragment.setArguments(bundle);

Fragment'in onActivityCreated event'ından; 

Bundle bundle = this.getArguments();
int myInt = bundle.getInt(key, defaultValue);

şeklinde gelen değeri alıp işlem yaptırabiliyoruz.

Herkese hayırlı günler. Kolay gelsin.. :)