我擁有的一切:與自定義適配器的自定義列表視圖,使用自定義的ListViewItem(它擴展的LinearLayout)的Android的ListView OnItemClick更改視圖屬性
我想要做什麼:當選擇列表框項目,我想更改所選視圖的背景可繪製。
發生了什麼:目前沒有。 Toast的確如其所示,但Background可繪製不會改變。我試着調用View.Invalidate(),但似乎並沒有做任何事情。
這是應該改變繪製的代碼片段:
public void onItemClick(AdapterView<?> arg0, View view, int index, long arg3)
{
Card card = CardVM.GetCurrentCards().get(index);
card.setBlocked(!card.isBlocked());
if (card.isBlocked())
{
view.setBackgroundResource(R.drawable.bluegradient);
Toast.makeText(this, "Card is now Blocked", 1).show();
}
else
{
view.setBackgroundResource(R.drawable.greengradient);
Toast.makeText(this, "Card is now Available", 1).show();
}
}
的切換功能不工作,如果你點擊它的第一次,它會說:「卡已被鎖住。」第二次顯示「Card is now available」...等等。 setBackgroundResource根本不起作用。此外,當填充列表視圖時,背景顏色設置正確(使用相同的資源和相同的功能)。
在此先感謝。
UPDATE
它出現的背景是變化的,但只有當屏幕被強制重新繪製。例如,當您點擊列表中的第一個項目將其變爲藍色時,您需要向下滾動(以將其從屏幕上移開),然後向上滾動。然後它變成藍色。我們可以避免這種情況嗎?
感謝您的信息:請參閱我的更新。 – Peanut 2011-02-06 00:16:54