我正试图在一个职位上实施一个类似/不类似的系统。 我想在用户名为“abcd”的地方显示一个红星,否则将显示一个白星。 接口为:
interface onStarClicked{
void isClicked(String name);
}
viewholder中的绑定函数为:
public void bind(Post post, onStarClicked starClicked){
//Log.d("NAME", post.getName());
String usrnm = post.getName();
starClicked.isClicked(usrnm);
name.setText(post.getName());
posttext.setText(post.getPost());
starCount.setText(String.valueOf(post.getHearts()));
}
post
是数据库中存在的post的模型。 OnBindViewHolder
是:
@Override
protected void onBindViewHolder(@NonNull final PostViewHolder holder, int position, @NonNull Post model) {
final ImageView img = holder.itemView.findViewById(R.id.star_click);
holder.bind(model, new onStarClicked() {
@Override
public void isClicked(String name) {
if(name == "abcd"){
Glide.with(holder.itemView.getContext())
.load(R.drawable.red_star)
.into(img);
}else{
Glide.with(holder.itemView.getContext())
.load(R.drawable.white_star)
.into(img);
}
}
});
}
imageview仍然为每个帖子显示白星。 如何解决这个问题?
这是一条你应该做的线:
if(name.equals("abcd"){
//do your thing
}