Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
1800
Tıklama
0
Öne Çıkarma
Android Fragment'larda OnClick Methodu (ÇÖZÜLDÜ)
A
10 yıl
Yarbay
Konu Sahibi

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.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil





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


Bu mesajda bahsedilenler: @ahmtbrk58
R
10 yıl
Binbaşı

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.


Bu mesaja 1 cevap geldi.
A
10 yıl
Yarbay
Konu Sahibi

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ı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Revolucionare
R
10 yıl
Binbaşı

Github hesabın varsa projeyi paylaşabilir misin hocam?Böyle anlayamadım sorununu :) .


Bu mesaja 1 cevap geldi.
A
10 yıl
Yarbay
Konu Sahibi

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ı >


Bu mesajda bahsedilenler: @Revolucionare
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.