۱۳۹۸/۰۲/۲۷, ۰۴:۵۲ ب.ظ
سلام
من کاملا متوجه مشکلت نشدم ولی چیزی که به نظرم میتونه مشکلت رو حل کنه رو میگم
میتونی از اینترفیس ها بین اکتیویتی و فرگمنت استفاده کنی تا بتونی از فرگمنت با اکتیویتی ارتباط برقرار کنی و متدی رو که میخوای در اکتیویتی اجرا کنی
این کد رو ببین:
ساخت اینترفیس(من تو یه فایل به اسم Interfaces این رو ساختم):
بعدش در اکتیویتی اون رو پیاده سازی میکنیم:
بعدش توی فرگمنت ، یه نمونه از اون ایترفیس که قبلا ساختیم(کدش هم اینحا برات اورده بودم) رو میسازیم:
و در اخر باید توی فرگمنت؛ اکتیویتی خودمون رو به اینترفیس تبدیل کنیم ( یا به اصطلاح کَست کنیم):
حالا میتونیم هرجای فرگمنت این کد رو اجرا کنیم و بعدش همانطور که اینترفیس در اکتیویتی پیاده سازی شده بود؛ متد در اکتیویتی فراخوانده میشود
نمیدونم برات مفید بود یا نه
اگه مشکلت رو واضح تر بگی شاید بتونم کمکت کنم
و راستی از OnActivityResult که حتما استفاده کردی؟ اگه نه بگو برات توضیح بدم، فکر بهتر بود این رو توضیح میدادم تا اینترفیس رو
من کاملا متوجه مشکلت نشدم ولی چیزی که به نظرم میتونه مشکلت رو حل کنه رو میگم
میتونی از اینترفیس ها بین اکتیویتی و فرگمنت استفاده کنی تا بتونی از فرگمنت با اکتیویتی ارتباط برقرار کنی و متدی رو که میخوای در اکتیویتی اجرا کنی
این کد رو ببین:
ساخت اینترفیس(من تو یه فایل به اسم Interfaces این رو ساختم):
کد:
interface OnFragmentJobChangedListener{
void OnChange(boolean b);
}
کد:
public class MainActivity extends AppCompatActivity implements Interfaces.OnFragmentJobChangedListener
کد:
public class xFragment extends Fragment {
/** my custom listener */
private Interfaces.OnFragmentJobChangedListener mOnFragmentJobChangedListener;
و در اخر باید توی فرگمنت؛ اکتیویتی خودمون رو به اینترفیس تبدیل کنیم ( یا به اصطلاح کَست کنیم):
کد:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mOnFragmentJobChangedListener = (Interfaces.OnFragmentJobChangedListener) activity;
} catch (ClassCastException e) {
e.printStackTrace();
}
}
حالا میتونیم هرجای فرگمنت این کد رو اجرا کنیم و بعدش همانطور که اینترفیس در اکتیویتی پیاده سازی شده بود؛ متد در اکتیویتی فراخوانده میشود
کد:
mOnFragmentJobChangedListener.OnChange(true);
نمیدونم برات مفید بود یا نه
اگه مشکلت رو واضح تر بگی شاید بتونم کمکت کنم
و راستی از OnActivityResult که حتما استفاده کردی؟ اگه نه بگو برات توضیح بدم، فکر بهتر بود این رو توضیح میدادم تا اینترفیس رو