2017-08-07 101 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