【发布时间】:2018-06-13 05:47:24
【问题描述】:
我有两个不同模型类的两个列表。在recyclerview 中单击项目时,我正在列表中添加数据。我需要先检查数据是否已经存在。我首先从firebase-database 检索数据。
这是我的代码 model.getKey() 是 firebase 的推送 ID
@Override
public void onBindViewHolder(final User_MemberHolder holder, int position) {
final UserModel_member_DP_NAME model = mList.get(position);
holder.txt.setText(model.getName());
Picasso.with(holder.itemView.getContext()).load(model.getDp()).into(holder.img);
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Selected_Member_Model seleted_model = new Selected_Member_Model(model.getKey(),model.getName());
if(!sList.contains(seleted_model)) {
sList.add(seleted_model);
Toast.makeText(view.getContext(), "added ", Toast.LENGTH_SHORT).show();
//change background if selected
holder.itemView.setBackground(getResources().getDrawable(R.color.chat_cardview_color));
}else{
Toast.makeText(view.getContext(), "selected already", Toast.LENGTH_SHORT).show();
}
}
});
}
【问题讨论】:
-
1) 您没有使用 Java 代码约定,这使得其他人更难阅读您的代码。 2) 你的
Selected_Member_Model必须覆盖默认的equals和hashCode方法,sList.contains(seleted_model)才能在你的情况下正常工作
标签: android arraylist android-recyclerview