হ্যা, তুমি পারো.
অ্যাডাপ্টারে একটি নতুন ক্ষেত্র যুক্ত করুন:
private Context mContext;
অ্যাডাপ্টারের কনস্ট্রাক্টরে নিম্নলিখিত কোড যুক্ত করুন:
public AdapterName(......, Context context) {
//your code.
this.mContext = context;
}
অ্যাডাপ্টারের গেটভিউ (...) এ:
Button btn = (Button) convertView.findViewById(yourButtonId);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (mContext instanceof YourActivityName) {
((YourActivityName)mContext).yourDesiredMethod();
}
}
});
যেখানে আপনার কোড, আপনার ক্রিয়াকলাপ ইত্যাদি দেখতে পাবেন সেখানে নিজের শ্রেণীর নামগুলি প্রতিস্থাপন করুন
যদি আপনার একাধিক ক্রিয়াকলাপের জন্য এই একই অ্যাডাপ্টারটি ব্যবহার করতে হয় তবে:
একটি ইন্টারফেস তৈরি করুন
public interface IMethodCaller {
void yourDesiredMethod();
}
এই ইন্টারফেসটি ক্রিয়াকলাপ কল করার জন্য এই পদ্ধতিটি আপনার প্রয়োজন এমন ক্রিয়াকলাপগুলিতে প্রয়োগ করুন।
তারপরে অ্যাডাপ্টার getView () এ, কল করুন:
Button btn = (Button) convertView.findViewById(yourButtonId);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (mContext instanceof IMethodCaller) {
((IMethodCaller) mContext).yourDesiredMethod();
}
}
});
তুমি পেরেছ. আপনার যদি এই ক্রিয়াকলাপের প্রয়োজন না এমন ক্রিয়াকলাপগুলির জন্য এই অ্যাডাপ্টারটি ব্যবহার করার প্রয়োজন হয় তবে কোডটি কার্যকর করা হবে না (যদি চেক ব্যর্থ হয়)।