আপনি যদি অন্য কোথাও এটি ব্যবহার করতে চান তবে আপনার ক্রিয়াকলাপ থেকে খণ্ডটি দ্বিগুণ করার চেষ্টা করা উচিত। আপনার কার্যকলাপ প্রয়োগ করে এমন একটি ইন্টারফেস তৈরি করে আপনি এটি করতে পারেন।
সুতরাং আপনি নীচের মত একটি ইন্টারফেস সংজ্ঞায়িত করতে হবে:
ধরুন উদাহরণস্বরূপ আপনি এই ক্রিয়াকলাপটিকে একটি স্ট্রিং দিতে চেয়েছিলেন এবং এটির একটি পূর্ণসংখ্যার ফিরিয়ে দিতে চান:
public interface MyStringListener{
public Integer computeSomething(String myString);
}
এটি খণ্ড বা একটি পৃথক ফাইলে সংজ্ঞায়িত করা যায়।
তারপরে আপনি আপনার ক্রিয়াকলাপটি ইন্টারফেসটি প্রয়োগ করতে পারেন।
public class MyActivity extends FragmentActivity implements MyStringListener{
@Override
public Integer computeSomething(String myString){
/** Do something with the string and return your Integer instead of 0 **/
return 0;
}
}
তারপরে আপনার খণ্ডে আপনার একটি মাইস্ট্রিংলিস্টনার ভেরিয়েবল থাকবে এবং আপনি শ্রোতাদের অনাচা (ক্রিয়াকলাপ ক্রিয়াকলাপ) পদ্ধতিতে খণ্ডন করতে পারবেন।
public class MyFragment {
private MyStringListener listener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
listener = (MyStringListener) context;
} catch (ClassCastException castException) {
/** The activity does not implement the listener. */
}
}
}
সম্পাদনা করুন (17.12.2015):onAttach(Activity activity) is deprecated, use onAttach(Context context) instead, it works as intended
প্রথম উত্তরটি অবশ্যই কাজ করে তবে এটি আপনার বর্তমান খণ্ডটিকে হোস্টের ক্রিয়াকলাপের সাথে জুড়ে দেয়। আপনি যদি অন্য কোনও সংবেদনশীলতায় এটি ব্যবহার করতে চান তবে হোস্টের ক্রিয়াকলাপ থেকে খণ্ডটিকে ডুপ্লুড করে রাখা ভাল অভ্যাস।