2017-08-07 122 views
0

我有一个Android应用程序,用户可以喜欢和不同的图像。我使用recyclerView.I只需禁用按钮(像/不像)一旦用户点击。问题,当我点击喜欢按钮,该应用程序转到主要活动和按钮等也不会改变不像我做了什么:像不像按钮recycler查看图片

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 

海尔北京时间我的观点持有者

//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

我一遍又一遍地回答了这类问题。你没有足够的搜索,你不明白如何ListView或RecycleView的作品。改变视图的当前状态(例如更改TextView的文本或更改ImageView的资源)是错误的。您需要数据集(与ListView中的项目相关的列表),您需要更改列表的相应数据并调用适配器的notifyDataSetChanged()方法。

别忘了。每当您的列表中的任何视图变为显示在屏幕上,并且如果仅更新视图(而不是更改数据),则适配器的getView()方法会被调用,因为您的数据没有更改,所以视图将显示项目的过去值。

查看下面的链接,并更多地了解ListView和RecycleView的工作原理。

How ListView's recycling mechanism works