2011-12-20 20 views
0

の背景色をリセットすることができません、私は方法getViewメソッドで、次のでした:リストビューで、アダプタを設定することによりカスタムアダプタでListView項目

 if (ual.getTransactionCategory() == TransactionCategory.WARNING){ 
      convertView.setBackgroundColor(convertView.getResources().getColor(R.color.yellow_warning)); 
     } 
     ... 
     return convertView; 

、私はsucessfully警告をしました黄色い背景に表示される項目。今、私の問題は、警告項目の背景をクリックすると白く設定したいということです。

 @Override 
     public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { 
      view.setBackgroundColor(getResources().getColor(R.color.white)); 
     } 

をしかし、それは背景を変更しませんので、リストビューのonItemClickに、私がやりました。私はgetViewメソッドに背景を設定しない場合

代わりに、私は私がonItemClickに好きに背景を変更することができます。 提案がありますか?

答えて

0

state drawable resourceを使用する必要があります。このドロアブルでは、さまざまな状態の色を定義できます。ビューを作成するときは、代わりに次のようにします。

if (ual.getTransactionCategory() == TransactionCategory.WARNING){ 
    convertView. setBackgroundResource(R.drawable.your_state_drawable); 
} 
... 
return convertView; 
+0

お返事ありがとうございました!実際には、状態drawableリソースに似ているはずの色の状態リストを試しましたが、何もしません.. – Han

0

ビューから内部ビューを参照しています。以下は動作するはずです。

public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) { 
     ImageView iv = (ImageView) v.findViewById(R.id.menu_icon); //What ever your inline view is 
     iv.setBackgroundColor(getResources().getColor(R.color.white)); 
} 
+0

私はそれを持っているかわかりません – Han

関連する問題