Java onBindViewHolder方法有什么问题

Java onBindViewHolder方法有什么问题,java,android,sharedpreferences,Java,Android,Sharedpreferences,我在我的卡适配器中使用onBindViewHolder。它包括一个onClick方法checkedTextView。我正在尝试获取这些文本并将其放入Arraylist(sharedP)。但是ArrayList只返回最后一个元素。我的错在哪里 public void onBindViewHolder(@NonNull final CardTasarimTutucu holder,int位置){ SharedReferences sp=mContext.getSharedReferences(“选中

我在我的
卡适配器中使用
onBindViewHolder
。它包括一个
onClick
方法
checkedTextView
。我正在尝试获取这些文本并将其放入
Arraylist(sharedP)
。但是
ArrayList
只返回最后一个元素。我的错在哪里

public void onBindViewHolder(@NonNull final CardTasarimTutucu holder,int位置){
SharedReferences sp=mContext.getSharedReferences(“选中”,Context.MODE\u PRIVATE);
e=sp.edit();
sharedP=newarraylist();
word=words.get(position.getMean();
Log.e(“getMean”,单词);
id=words.get(position.getId();
str=新的StringBuffer(“”);
holder.rowText.setText(word);
holder.rowText.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
if(holder.rowText.isChecked()){
sharedP.remove(sharedP.indexOf(word));
flag=false;
holder.rowText.setCheckMarkDrawable(空);
holder.rowText.setChecked(false);
}否则{
sharedP.add(word);
flag=true;
Log.e(“deneme”,word);
holder.rowText.setCheckMarkDrawable(R.drawable.ic\u check\u black\u 24dp);
holder.rowText.setChecked(true);
}
str.delete(0,str.length());

for(int i=0;i首先
onBindViewHolder
调用
RecyclerView
中的每个项目,以显示视图项目中每个位置的数据。因此它就像一个循环。在代码中,您初始化
onBindViewHolder
中的
sharedP
数组;
。因此,对于您传递/滚动的每个项目,数组将再次初始化,上一个项目将丢失。换句话说,当您到达列表末尾时,列表中只有一个项目,即最后一个项目。

那么,是否有其他方法获取所有项目?