赞
踩
不, 你 可以 。
在適配器中添加一個新欄位:private Context mContext;
在適配器構造函數中添加以下代碼:public AdapterName(......,Context context){
//your code.
this.mContext=context;
}
在適配器的getView(...) 中:Button btn=(Button)convertView.findViewById(yourButtonId);
btn.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
if(mContext instanceof YourActivityName){
((YourActivityName)mContext).yourDesiredMethod();
}
}
});
用你自己的類名替換你的代碼,你的Activity 等。
如果你需要對多個 Activity 使用同一個適配器,請執行以下操作:
創建介面public interface IMethodCaller{
void yourDesiredMethod();
}
在 activity 中實現這裡介面你需要使用這裡方法調用功能。
然後在適配器 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();
}
}
});
完成。如果需要對不需要調用機制的activity 使用這裡適配器,則代碼將不會執行( 如果檢查失敗) 。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。