Merhaba; Arada Herhangi Bir Activity Kullanmadan Direk Fragment A'dan, Fragment B'deki Bir Fonksyonu Tetiklemek İstiyorum. Bunu Nasıl Yapabilirim.

Örnek; Fragment A da Bulunan Bir Butona Tıkladığımda; Fragment B'de Bulunan "Public void MasaGetir()" fonksiyonu Çağırmak istiyorum.

Teşekkürler.

soruldu: 26 Eki '15, 05:34

webing's gravatar image

webing
56678
cevap kabul oranı: 33%


Android Developpers sayfası na bir bak istersen.

Burada da anlatıldığı üzere Fragment A da bir interface tanımlıyorsun , sonrasında bu interface i implemente ediyorsun.

// You Activity implements your interface
public class YourActivity implements FragmentA.TextClicked{
    @Override
    public void sendText(String text){
        // Get Fragment B
        FraB frag = (FragB)
            getSupportFragmentManager().findFragmentById(R.id.fragment_b);
        frag.updateText(text);
    }
}

// Fragment A defines an Interface, and calls the method when needed
public class FragA extends Fragment{

    TextClicked mCallback;

    public interface TextClicked{
        public void sendText(String text);
    }

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);

        // This makes sure that the container activity has implemented
        // the callback interface. If not, it throws an exception
        try {
            mCallback = (TextClicked) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                + " must implement TextClicked");
        }
    }

    public void someMethod(){
        mCallback.sendText("YOUR TEXT");
    }

    @Override
    public void onDetach() {
        mCallback = null; // => avoid leaking, thanks @Deepscorn
        super.onDetach();
    }
}

// Fragment B has a public method to do something with the text
public class FragB extends Fragment{

    public void updateText(String text){
        // Here you have it
    }
}
permanent link

cevaplandı: 26 Eki '15, 15:18

OzkanCiftci's gravatar image

OzkanCiftci
350127
cevap kabul oranı: 25%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×16

Soruldu: 26 Eki '15, 05:34

Görüntüleme: 283 kez

Son güncelleme: 26 Eki '15, 15:18

powered by BitNami OSQA