Я применяю проверку, в которой я получаю все токены в списке из базы данных, а затем в onBindviewHolder Iam применяю Foreach l oop, в котором я сопоставляю все токены с токеном текущего пользователя и токеном, если он есть. соответствует тому, что представление предмета не должно быть отображено в программе повторного просмотра. Здесь я получаю список токенов:
for (DataSnapshot parent : dataSnapshot.getChildren()) {
String token;
token = parent.getKey();
tokenList.add(token);
}
И здесь показываю список:
for (String tokens : tokenList) {
if (bloodGroupMatched.contains(bloodGroup) && !tokens.equals(userId)) {
holder.name.setText(profiles.getName());
holder.type.setText(userType);
holder.distance.setText(dist + " km");
holder.itemView.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(10, 5, 5, 10);
holder.itemView.setLayoutParams(params);
} else {
holder.itemView.setVisibility(View.GONE);
holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
}
}
, показывая список, если я выпью за тост токены, которые l oop не заканчивается, и продолжают показывать токены от начала, когда список заканчивается, и ничего не отображать в обзоре переработчика. Я хочу показать список пользователей, кроме тех, кто не соответствует критериям. если я уберу этот флажок "! tokens.equals (userId)" и уберу l oop, он начинает работать нормально, но я должен применить эту проверку также
Я получаю эти узлы и и какой узел совпадает с текущим пользовательским узлом входа в систему. Я не хочу показывать его детали. И это вся моя функция, где я использую эту логику c:
adapter = new FirebaseRecyclerAdapter<Profiles, DonarViewHolder>(model) {
@Override
protected void onBindViewHolder(@NonNull DonarViewHolder holder, int position, @NonNull Profiles profiles) {
ArrayList<String> bloodGroupMatched = new ArrayList<>();
bloodGroupMatched.addAll(profiles.getMatched_bloodGroups());
for (String tokens : tokenList) {
if (bloodGroupMatched.contains(bloodGroup) && !tokens.equals(userId)) {
holder.name.setText(profiles.getName());
holder.itemView.setVisibility(View.VISIBLE);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.setMargins(10, 5, 5, 10);
holder.itemView.setLayoutParams(params);
} else {
holder.itemView.setVisibility(View.GONE);
holder.itemView.setLayoutParams(new RecyclerView.LayoutParams(0, 0));
}
}
}
@NonNull
@Override
public DonarViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_donar_view_holder, parent, false);
return new DonarViewHolder(view);
}
};
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter.startListening();
progressDialog.dismiss();
recyclerView.setAdapter(adapter);