প্রশ্ন: কীভাবে একজন ডায়ালগফ্র্যাগমেন্ট থেকে অন্য একটি খণ্ডে কলব্যাক তৈরি করে। আমার ক্ষেত্রে, জড়িত ক্রিয়াকলাপটি ডায়ালগফ্রেগমেন্ট সম্পর্কে সম্পূর্ণ অসচেতন হওয়া উচিত।
আমার আছে বিবেচনা করুন
public class MyFragment extends Fragment implements OnClickListener
তারপরে কোন এক সময় আমি করতে পারি
DialogFragment dialogFrag = MyDialogFragment.newInstance(this);
dialogFrag.show(getFragmentManager, null);
যেখানে মাই ডায়ালগফ্রেগমেন্টের মতো দেখাচ্ছে
protected OnClickListener listener;
public static DialogFragment newInstance(OnClickListener listener) {
DialogFragment fragment = new DialogFragment();
fragment.listener = listener;
return fragment;
}
তবে ডায়ালগফ্রেগমেন্টটি তার জীবনকাল থেকে বিরতি দিয়ে আবার শুরু করলে শ্রোতার আশেপাশের কোনও নিশ্চয়তা নেই। একটি খণ্ডে কেবলমাত্র গ্যারান্টি হ'ল সেটেগমেন্টস এবং গেটআরগমেন্টগুলির মাধ্যমে কোনও বান্ডিলের মধ্য দিয়ে।
ক্রিয়াকলাপটি রেফারেন্স করার একটি উপায় আছে যদি এটি শ্রোতা হওয়া উচিত:
public Dialog onCreateDialog(Bundle bundle) {
OnClickListener listener = (OnClickListener) getActivity();
....
return new AlertDialog.Builder(getActivity())
........
.setAdapter(adapter, listener)
.create();
}
তবে আমি চাই না যে ক্রিয়াকলাপগুলি ইভেন্টগুলি শোন, আমার একটি খণ্ড দরকার। সত্যই, এটি কোনও জাভা অবজেক্ট হতে পারে যা অনক্লিকলিস্টনার প্রয়োগ করে।
ডায়ালগফ্র্যাগমেন্টের মাধ্যমে একটি অ্যালার্টডায়ালগ উপস্থাপন করে এমন একটি খণ্ডের দৃ concrete় উদাহরণ বিবেচনা করুন। এটিতে হ্যাঁ / না বোতাম রয়েছে। আমি এই বোতাম টিপুনগুলি এটি তৈরি করা টুকরোটিতে কীভাবে পাঠাতে পারি?
OnClickListener listener = (OnClickListener) getParentFragment();
পরিবর্তে আপনি ডায়ালগফ্র্যাগমেন্টে কেন কেবল ব্যবহার করতে পারবেন না তা আমি দেখতে পাচ্ছি না এবং আপনার মূল টুকরাটি আপনি যেমন করেছেন ঠিক তেমন ইন্টারফেসটি প্রয়োগ করে।