2015-06-20 27 views
0

我使用recyclerview創建了一個列表。列表中的每個項目都有一個可點擊的圖標,並在點擊時改變顏色。我的問題是,每當我選擇一個圖標時,它不僅會更改所選圖標的顏色,還會更改8個索引以外的圖標的顏色。所以如果我選擇索引0處的圖標,索引9處的圖標也會改變顏色。我不知道我是否有任何意義。Recyclerview選擇不一致

這裏是我的ViewHolder具有事件處理程序

public class MenuItemHolder extends RecyclerView.ViewHolder 
    { 
     TextView menuItemTV; 
     TextView menuItemPriceTV; 
     ImageView cartIV; 
     int selectedPosition; 
     Boolean cartPressed = false; 
     CardView itemCV; 

     MenuItemHolder(View itemView) 
     { 
      super(itemView); 
      menuItemTV = (TextView)itemView.findViewById(R.id.menuItem); 
      menuItemPriceTV = (TextView)itemView.findViewById(R.id.itemPrice); 
      itemCV = (CardView)itemView.findViewById(R.id.itemCV); 
      cartIV = (ImageView) itemView.findViewById(R.id.cart); 

      //Event handler for clicking on the whole card 
      itemView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        selectedPosition = getPosition(); 
        Log.i("Position", "Position = " + selectedPosition); 
       } 
      }); 

      cartIV.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 

        Log.i("Position", "Cart = " + menuItemTV.getText()); 
        if(!cartPressed) 
        { 
         cartIV.setImageResource(R.drawable.ic_cart_blue); 
         cartPressed = true; 
        } 
        else { 
         cartIV.setImageResource(R.drawable.ic_cart_grey); 
         cartPressed = false; 
        } 
       } 
      }); 


     } 
    } 

回答

相關問題