2 回答
TA贡献1876条经验 获得超5个赞
在interface您的SettingsRecyclerAdapter:
public interface OnAdapterResult {
public void onAdapterResult(boolean isChecked);
}
并将接口附加到其构造函数中:
public SettingsRecyclerAdapter (Context context){
mContext = context;
// .. Attach the interface
try{
onAdapterResult = (OnAdapterResult) context;
}catch(ClassCastException ex){
Log.e("MyAdapter","error"+ ex,);
}
}
然后初始化你的接口方法:
((SendToMailTypeViewHolder) holder).switchSendMailReport.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
onAdapterResult.onAdapterResult(isChecked); \\ here
} else {
}
}
});
那么implements您的SettingsActivity来自adepter.OnAdapterResult interface:
public class SettingsActivity extends AppCompatActivity implements adepter.OnAdapterResult {
.
.
.
@Override
public void onAdapterResult(boolean isChecked) {
//
}
}
TA贡献1827条经验 获得超7个赞
您不能在适配器类中使用活动的 onActivityResult() 。但您可以在适配器类中创建自己的相同方法
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { // do you stuff }
现在,当您在 onActivityResult() 中回调时,从活动中调用您的适配器方法
if(adapter !=null){ adapter.onActivityResult(requestCode,resultCode,data) }
添加回答
举报