Şimdi Ara

Android Fragment'larda OnClick Methodu (ÇÖZÜLDÜ)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
5
Cevap
0
Favori
1.626
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Ek: Çözüldü. Xml'deki onCick yöntemini kullandığımdan oluyormuş sanırsam. Onun yerine class için setOnClickListener kullanınca methodu fragment'da aramaya başladı.


    Bir fragment'ım var ve içinde bir onClick methodu var. Bu method, fragment'ın içindeki bir interface yardımıyla diğer fragment ile haberleşecek.

    Yalnız olay şu ki, uygulama çalıştığında android bu onClick methodunu fragment'da değil de interface'i implement eden Activity içinde arıyor. Sebep ne?

     
    public class NewTest extends FragmentActivity implements new_test_layout.DearListener {

    android.support.v4.app.FragmentManager manager;
    new_answer_layout new_answer_layout_object;
    //bu new_answer_layout'da 2. fragment, onun kodunu da koyabilirim istenirse
    new_test_layout new_test_layout_object;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_holder);
    }

    @Override
    // Bu implement edilen class
    public void getMyText(String theQuestion) {
    //bu new_answer_layout'da 2. fragment, onun kodunu da koyabilirim istenirse
    new_answer_layout_object = new new_answer_layout();
    new_answer_layout_object.showQuestion(theQuestion);
    FragmentTransaction transaction = manager.beginTransaction();
    transaction.replace(R.id.the_frame_layout, new_answer_layout_object );
    transaction.addToBackStack(null);
    }

    }




    Bu da interface'i içeren fragment:

     
    package *****

    import android.app.Activity;
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v4.app.Fragment;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.TextView;

    public class new_test_layout extends Fragment {

    DearListener activityCommander;
    TextView custom_question_bar, list_number;
    String selectedCustomQuestion;
    boolean buttonClicked;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.new_test_layout, container, false);
    custom_question_bar= (TextView) v.findViewById(R.id.custom_question_bar);
    list_number= (TextView) v.findViewById(R.id.list_number);
    return v;
    }


    public interface DearListener {
    public void getMyText(String theQuestion);
    }

    @Override
    public void onAttach(Activity activity) {
    super.onAttach(activity);
    try {
    activityCommander = (DearListener) activity;
    } catch (ClassCastException e) {
    throw new ClassCastException(activity.toString());
    }
    }

    public void onClickYiyecek(View v){
    activityCommander.getMyText("En sevdiğim yiyecek ne?");
    }

    public void onClickQuestionReady(View v){
    activityCommander.getMyText(custom_question_bar.getText().toString());
    }

    }



    İşte onClickYiyecek methodunu neden Activity içinde arıyor çözemedim. Umarım çözülür.



    < Bu mesaj bu kişi tarafından değiştirildi avatar78 -- 1 Mart 2015; 11:51:16 >







  • fragment'in xml dosyasındaki onClick attribute'unu activity.java da araması bence de saçma.En nihayetinde fragmentlar activitylere bağlanıyor.Aynı fragment'i farklı activitylere de bağlayabilirsin.Bu sefer her farklı actiivty için kod parçası kopyalaman gerekecek.
  • Revolucionare R kullanıcısına yanıt
    Hocam hazır cevap vermişken sorayım, bir fragment'ı uygulama çalışırken activity'e transaction.add yardımıyla getiriyorum ama bu fragment'ın textini değiştiremiyorum. (Activity den fragment a parametre gönderip fragmentta setText yaparsak text değişmiyor) fragment'a onViewCreated tarzı bi method önerdiler ama bir bilginiz var mı?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Github hesabın varsa projeyi paylaşabilir misin hocam?Böyle anlayamadım sorununu :) .
  • Revolucionare R kullanıcısına yanıt
    GitHub hesabım yok ama soruyu stackof de sormuştum, oranın linkini atayım hocam:

    http://stackoverflow.com/questions/28827074/cant-change-the-fragments-textview-on-realtime

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.