我有一个Android应用程序,用户可以喜欢和不同的图像。我正在使用recyclerView.I只需在用户点击后禁用按钮(喜欢/不同)。问题是,当我点击按钮时,应用程序转到主要活动,按钮Like不会改变为与我所做的不同:
1 ) layout that holds the each recycler view layout item
2 ) A view holder for creating each layout
3 ) A Model Class to holds the data
4 ) Recycler Adaptor which deals with the data for the Each Layout item
Hier是我的观点持有人
//Initializing Views
public ViewHolder(View itemView) {
super(itemView);
imageView = (NetworkImageView) itemView.findViewById(R.id.imageViewHero);
textViewName = (TextView) itemView.findViewById(R.id.textViewName);
//textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher);
likeImageView = (ImageView) itemView.findViewById(R.id.likeImageView);
likeImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int id = (int)likeImageView.getTag();
if( id == R.drawable.ic_like){
likeImageView.setTag(R.drawable.ic_liked);
likeImageView.setImageResource(R.drawable.ic_liked);
}else{
likeImageView.setTag(R.drawable.ic_like);
likeImageView.setImageResource(R.drawable.ic_like);
}
}
});
答案 0 :(得分:0)
我一遍又一遍地回答了这类问题。你没有足够的搜索,你也不了解ListView或RecycleView的工作原理。更改当前视图状态(例如更改TextView文本或更改ImageView资源)是错误的。您需要数据集(与ListView中的项相关的列表),您需要更改列表的相应数据并调用适配器的notifyDataSetChanged()方法。
不要忘了。每次列表中的任何视图出现在屏幕上时,都会调用适配器的getView()方法,如果只更新视图(而不是更改数据),则视图将显示项目的过去值,因为您的数据没有改变。查看下面的链接,详细了解ListView和RecycleView的工作原理。