1 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
像這樣改變你Adapter:
public class Adapter extends PagerAdapter {
private List<Model> models;
private LayoutInflater layoutInflater;
private Context context;
private SetupActivity setupActivity;
public Adapter(List<Model> models, Context context) {
this.models = models;
this.context = context;
setupActivity = (SetupActivity) context;
}
@NonNull
@Override
public Object instantiateItem(@NonNull final ViewGroup container, final int position) {
layoutInflater = LayoutInflater.from(context);
final View view = layoutInflater.inflate(R.layout.item, container, false);
TextView buttonDeleteCard = view.findViewById(R.id.textViewDeleteCard);
buttonDeleteCard.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setupActivity.deleteSession([...some title...]);
setupActivity.refreshAdapter();
}
});
container.addView(view, 0);
return view;
}
}
為什么會(huì)出錯(cuò)?
您將Contextfrom傳遞SetupActivity給您的Adapter,將該引用保存在字段 ( context) 中,但您錯(cuò)誤地創(chuàng)建了SetupActivity.
這就是為什么你得到NullPointerException. 活動(dòng)是你的Context。它繼承自它。因此,只需將其轉(zhuǎn)換為您的構(gòu)造函數(shù)并稍后使用它。
添加回答
舉報(bào)