Android在Adapter裡面呼叫Activity的方法/變數
Activity中有個Popupwindow.
想在Adapter中的getView中設定Checbox的點選事件時,就顯示與隱藏這個Popupwindow
但是因為Adapter與Activity不是同一個類,所以操作有點麻煩..
--------------------------分割線--------------------------------------------
類: Adapter 繼承 BaseAdapter
類:Activity 繼承Activity
Adapter中--------------------------
WeakReference<Activity> weak; // 定義弱引用變數
public Adapter(Context context){
this.weak = new WeakReference<Activity>((Activity)context);
........
}
getView 方法中
checkbox的監聽器中
final Ativity activity = weak.get();
activity.**(); // /// // 這裡呼叫Activity中的方法////////////////////////////
-------------------------------------------一直是用上面的方法,但是太複雜了。這幾天別人一說才知道還有一種更加簡單的方法----------------------
紅色程式碼就是呼叫的部分。
Activity:
public class MyActivity extends Activity
{
public void test(){};
public void test(int position){}
}
BaseAdater:
public class MyBaseAdapter extends BaseAdapter{
MyActivity context;
public MyBaseAdapter(MyActivity context){
this.context = context;
}
//其他函式中呼叫MyActivity的方法。
context.test();
context.text(1);
}