Вот мой класс Adapter java. Я получаю данные из firestore. Каждый раз, когда я открываю свою деятельность, он показывает дубликаты файлов в моей коллекции. Каждый раз, когда я открываю, количество повторяющихся файлов увеличивается.
public class AccountsAdapter extends RecyclerView.Adapter<AccountsAdapter.Accountsviewholder> {
private List<Accountsmodel> list;
private Context context;
private ItemClickListener itemClickListener;
public AccountsAdapter(List<Accountsmodel> list, Context context, ItemClickListener itemClickListener) {
this.list=list;
this.context=context;
this.itemClickListener=itemClickListener;
}
@NonNull
@Override
public Accountsviewholder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
View view = layoutInflater.inflate(R.layout.acc_pdf_item,null,false);
return new Accountsviewholder(view);
}
@Override
public void onBindViewHolder(@NonNull final Accountsviewholder accountsviewholder, final int position) {
accountsviewholder.aName.setText(list.get(position).getName());
}
@Override
public int getItemCount() {
return list.size();
}
public class Accountsviewholder extends RecyclerView.ViewHolder implements View.OnClickListener {
private TextView aName;
private ImageView imageView;
public Accountsviewholder(View itemView) {
super(itemView);
aName = itemView.findViewById(R.id.aTV);
imageView = itemView.findViewById(R.id.aIV);
imageView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
itemClickListener.onClick(v,getAdapterPosition(),false);
}
}
}
Ниже представлено мое основное занятие. Я использовал тот же метод в другом упражнении, но для прямой загрузки. Здесь я использовал прослушиватель щелчков по элементам для метода веб-просмотра. поэтому он показывает эту ошибку.
FirebaseFirestore accdb;
RecyclerView accRecyclerView;
public static List<Accountsmodel> list = new ArrayList<>();
AccountsAdapter accountsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_accounts);
accdb=FirebaseFirestore.getInstance();
accRecyclerView=findViewById(R.id.arecyclerdownloads);
accRecyclerView.setHasFixedSize(true);
accRecyclerView.setLayoutManager(new LinearLayoutManager(this));
final ItemClickListener itemClickListener = new ItemClickListener() {
@Override
public void onClick(View view, int position, boolean isLongClick) {
Intent intent = new Intent(Accounts_Activity.this, PDFActivity.class);
//intent.putExtra("url",list.get(position).getLink());
intent.putExtra("position",position);
startActivity(intent);
}
};
accdb.collection("Accounts").get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
for(DocumentSnapshot documentSnapshot: task.getResult()){
Accountsmodel accountsmodel= new Accountsmodel(documentSnapshot.getString("name")
,documentSnapshot.getString("link"),documentSnapshot.getString("fileextension"),documentSnapshot.getString("uploaddate"));
list.add(accountsmodel);
}
accountsAdapter = new AccountsAdapter(list,Accounts_Activity.this,itemClickListener);
accRecyclerView.setAdapter(accountsAdapter);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Accounts_Activity.this,"Error", Toast.LENGTH_SHORT).show();
}
});
}
}