Ya kamu bisa.
Di adaptor Tambahkan Bidang baru:
private Context mContext;
Di adaptor Constructor tambahkan kode berikut:
public AdapterName(......, Context context) {
//your code.
this.mContext = context;
}
Di getView (...) dari Adapter:
Button btn = (Button) convertView.findViewById(yourButtonId);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (mContext instanceof YourActivityName) {
((YourActivityName)mContext).yourDesiredMethod();
}
}
});
ganti dengan nama kelas Anda sendiri di mana Anda melihat kode Anda, aktivitas Anda, dll.
Jika Anda perlu menggunakan adaptor yang sama ini untuk lebih dari satu aktivitas, maka:
Buat Antarmuka
public interface IMethodCaller {
void yourDesiredMethod();
}
Implementasikan antarmuka ini dalam aktivitas yang Anda perlukan untuk memiliki fungsi pemanggilan metode ini.
Kemudian di Adapter getView (), panggil seperti:
Button btn = (Button) convertView.findViewById(yourButtonId);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if (mContext instanceof IMethodCaller) {
((IMethodCaller) mContext).yourDesiredMethod();
}
}
});
Kamu selesai. Jika Anda perlu menggunakan adaptor ini untuk aktivitas yang tidak memerlukan mekanisme panggilan ini, kode tidak akan dijalankan (Jika pemeriksaan gagal).