تابستون داره تموم میشه ها، فرصت‌ها محدودن کلی آفر جذاب در کمپین تابستون🔥👇
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ سعید شاملو
ارسال دیتا از BottomSheet Dialog Fragment به Fragment
جامعه جاوا (اندروید) ایجاد شده در ۰۵ شهریور ۱۴۰۰

سلام من میخام از BottomSheet Dialog Fragment به Fragment با interface دیتا  ارسال کنم ولی متد onAttach به ارور برمیخورم مشکل کجاست؟

@Override
public void onAttach(@NonNull @NotNull Context context) {
    super.onAttach(context);
    listener = (TarakonshListener) context;
}

سلام وقت بخیر

خوب اینترفیس TarakonshListener رو به یک شکل دیگه برای این BottomSheet Dialog Fragment تامین کنید مثلا داخل Constructor همین کلاس. به نظرم مشکل از context هست

میلاد عزیززاده ۰۵ شهریور ۱۴۰۰، ۰۷:۲۲

سعید عزیز سلام وقت بخیر

 

ممنون میشم ارور مربوطه رو بفرستید همینطور کد هایی که برای این موضوع زدید .

پوریا شفیعی ۰۵ شهریور ۱۴۰۰، ۰۷:۳۸

ببنید من اینجا یه اینتر فیس تعریف کردم که یه تراکنش رو بفرستم به یه فرگمن دیگه 

public interface TarakonshListener
{
    void addTarakonesh(Tarakonesh tarakonesh);
}

 بعد رو سیو که کلیک میشه تراکنش رو به لیستنر دادم 

save.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Tarakonesh tarakonesh =new Tarakonesh();
        tarakonesh.setTitle(title);
        tarakonesh.setMablag(Integer.parseInt(mablagTarakonesh.getText().toString()));
        tarakonesh.setMember_id(member.getMember_id());
        tarakonesh.setShomare_marjae(shoamre_marjae);
        tarakonesh.setDate_pay(today_date);
        tarakonesh.setVaziat("موفق");
        listener.addTarakonesh(tarakonesh);
        dismiss();
    }
});

تو همین فرگمنت متد اتچ رو نوشتم

@Override
public void onAttach(@NonNull @NotNull Context context) {
    super.onAttach(context);
    listener = (TarakonshListener) context;
}

 

بعد توی فرگمنت دوم این متد رو ایمپلمنت کردم 

@Override
public void addTarakonesh(Tarakonesh tarakonesh) {
    long result =dao.addTarakonesh(tarakonesh);
    if(result>-1){
        tarakoneshAdapter.add(tarakonesh);
    }
}

حالا مشکل اینجاست این ارور رو نشون میده 

E/AndroidRuntime: FATAL EXCEPTION: main
   Process: com.saeed.fitmanager, PID: 23608
   java.lang.ClassCastException: com.saeed.fitmanager.MainActivity cannot be cast to com.saeed.fitmanager.AddTarakoneshFragment$TarakonshListener
       at com.saeed.fitmanager.AddTarakoneshFragment.onAttach(AddTarakoneshFragment.java:46)
سعید شاملو ۰۵ شهریور ۱۴۰۰، ۰۷:۵۱