我有扩展recyclerview.adapter的适配器类,我需要在此类中使用以下代码,但在“ this”上有错误。

public void addItems(int howMany){
    if (howMany > 0) {
        int lastInsertedIndex = 11;
        for (int i = lastInsertedIndex + 1; i <= lastInsertedIndex + howMany; i++) {
            mList.add(PreferenceManager.getDefaultSharedPreferences(this).getString("Item " + i));
            notifyItemInserted(mList.size() - 1);
        }
        lastInsertedIndex = lastInsertedIndex + howMany;
    }
}


如何解决这个错误?

最佳答案

在适配器的构造函数中传递上下文,如下所示:

Context context;
public YourAdapter( Context c) {
    this.context = c;
}


现在使用此上下文代替它。

传递上下文:

mAdapter = new YourAdapter(getContext());
recyclerview.setAdapter(mAdapter);


如果您正在通过Activity使用适配器,请使用ActivityName.this代替getContext()。

08-05 08:08