[英]listview item background color change
我正在開發一個android應用程序。 我已經使用創建了一個列表視圖
setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayname));
getListView().setTextFilterEnabled(true);
現在,我想更改所選項目的顏色。 我可以通過放置更改所選項目的背景
listviewobject.getChildAt(position).setBackgroundColor(Color.BLACK);
在onListItemClick()中
這段代碼正在更改背景顏色,但是如果我選擇任何其他列表項,那么先前單擊的列表項的顏色也是紅色。因此,我可以通過以下方式更改先前單擊的列表項的顏色:
l.getChildAt(prevpos).setBackgroundColor(Color.BLACK);
現在的問題是,如果我將先前單擊的listitems的背景顏色更改為黑色。然后我看不到該特定listitem上的文本。我再次單擊則只能看到該項目上的文本,因此看起來很奇怪。請幫我朋友
在瀏覽了許多帖子和博客之后,我發現此解決方案對我有用。
全局聲明行變量
public View row;
your_list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> a, View v,
int position, long id) {
if (row != null) {
row.setBackgroundResource(R.color.orange);
}
row = v;
v.setBackgroundResource(R.color.transparent_green);
)};
很好地在列表視圖的屬性中使用此幫助:
android:listSelector="@drawable/list_selector"
它將自動將所選的可繪制對象設置為所選項目的背景。 希望這對您有用,drawable可能是您自己選擇的顏色。
說明:將圖像帶添加到您的drawables文件夾,然后在列表視圖的listSelector屬性中設置該圖像。 現在,您將在列表視圖中導航,列表視圖的背景將是您設置的圖像帶的顏色,而不是android的本機顏色。 希望你現在得到它... :-)
我發生這種情況是因為您將文本顏色設置為黑色,而將背景顏色設置為黑色,這就是為什么看不到差異的原因。 要設置背景色,您可以使用以下行。
view.setBackgroundColor(Color.YELLOW);
使用與文本顏色不同的顏色。
默認情況下,背景為黑色。 如果您已自定義列表視圖,則在滾動時它將變為黑色。 因此,當您定義列表視圖時,將背景緩存顏色設置為所需的顏色,如下所示:
yourlistView.setCacheColorHint(Color.WHITE);
您可以做的是,不要將.setBackgroundColor()
與Color值一起使用, .setBackgroundColor()
創建一個顏色狀態列表 ,並使用.setBackgroundResource()
對其進行分配。 這樣,您可以根據列表的當前狀態定義列表項可以變為的各種狀態。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.