1. 程式人生 > >Android在Adapter裡面呼叫Activity的方法/變數

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);

}