列表視圖選擇顏色,當用戶長按一個項目,我畫一個自定義的操作欄,並提供用戶選項,一次刪除多個項目。在我的列表視圖中的Android
默認情況下,如果我執行長按動作,我會選擇顏色爲藍色,它會消失。
爲了克服,我試着添加一個像這樣的選擇器。
listviewselector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item
android:state_focused="true"
android:state_selected="false"
android:drawable="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/BLUE" />
</selector>
如果我設置此選擇,當用戶執行長按,我可以看到紅色,但病房後,如果用戶選擇執行,沒有顏色是越來越保留的項目。默認情況下它看起來很白。
我試圖根據條件設置背景顏色像下面
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(REDCOLOR);
}
else
{
convertView.setBackgroundColor(WHITE);
}
在這種情況下,如果用戶執行長按,然後如果用戶選擇多個項目,我可以看到紅色,默認情況下所有項目的顏色會變白。但是,如果用戶觸摸任何項目,默認顏色將不變,即選擇時不會出現顏色。
如何獲得默認的白色,點擊藍色和多重選擇紅色?
我想這樣 新的選擇:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Selected -->
<item
android:state_focused="true"
android:state_selected="false"
android:drawable="@color/RED"/>
<!-- Pressed -->
<item
android:state_selected="true"
android:state_focused="false"
android:drawable="@color/WHITE" />
</selector>
if(mSelectedItemsIds.get(key))
{
convertView.setBackgroundColor(mContext.getResources().getColor(R.color.RED));
}
else
{
convertView.setBackgroundColor(R.drawable.listviewselector);
}
在此,我得到默認的所有項目藍色。爲什麼?
嘗試設置listselector由convertView –
任何示例代碼,請充氣xml文件..感謝您發佈 – Naruto
listviewselector.xml是我是一個火影忍者迷太 –