2012-11-24 40 views
0

我儘量讓multichoice在我的GridView中使用此代碼:GridView控件,設置用於繪製項目

ArrayList<String> selectedItems=new ArrayList<String>(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 

... 

    GridAdapter gridAdapter = new GridAdapter(this, tmp); 

    gridView.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String code=((TextView)view.findViewById(R.id.code)).getText().toString(); 
      int index=selectedItems.indexOf(code); 
      if(index==-1) { 
       view.setBackgroundResource(R.drawable.selected); 
       selectedItems.add(code); 
      } else { 
       view.setBackgroundDrawable(null); 
       selectedItems.remove(index); 
      } 
     }}); 

... 

} 

但是,這有一個問題。我點擊其中一個項目,它會將顏色更改爲灰色,沒關係。然後向下滾動我的GridView並看到另一個灰色的項目。但它沒有檢查實際的事實,我從來沒有點擊它。爲什麼?如何解決它?

回答

0

我解決它放在GridAdapter.getView()時,此代碼:

if(selectedItems.contains(code))) { 
    convertView.setBackgroundResource(R.drawable.selected); 
} else { 
    convertView.setBackgroundDrawable(null); 
} 
相關問題