簡體   English   中英

Android-更改多選ListView背景的顏色

[英]Android - Change color of multiple choice listview background

我有一個多選ListView,默認情況下它具有白色背景,但是當被選中時,該項的背景會變為藍色(在此由十六進制代碼定義)。

mItemState = new boolean[list.length];
ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListOfMajors.this,android.R.layout.simple_list_item_multiple_choice,list);
mylist.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
mylist.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mItemState[position] = !mItemState[position];
        if (mItemState[position]){
            view.setBackgroundColor(Color.parseColor("#33b5e5"));                                       
        }else{
            view.setBackgroundColor(Color.WHITE);                       
        }

    }

});

目前,一切似乎都正常。 但是,如果我選擇了第一個元素,那么最后一個元素也會更改背景顏色(但是不會被打勾)。 另外,如果我選擇了最后一個元素,則第一個元素也會發生相同的情況。 發生這種情況的原因似乎是什么?

好吧,您必須熟悉ListView回收機制和convertView模型。 最后一個元素視圖是使用第一個元素視圖作為convertView組成的。 考慮此博客http://android.amberfog.com/?p=296

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM