簡體   English   中英

自定義列表視圖和復選框/按鈕的問題

[英]Problem with custom Listview and Checkboxes/Buttons

我在使用自定義列表視圖和(復選框或按鈕)時遇到了麻煩。 我遵循指南(android 開發者的食譜),我的自定義 Listview 正確顯示。 滾動選定的復選框時發生可見錯誤。(檢查了錯誤的復選框)

我遵循了http://www.vogella.de/articles/AndroidListView/article.html#listviews_performance上的指南,但它不起作用。 如何正確保存 state?

問候安德烈亞斯

您必須將選中的項目保存在列表變量中(在您的適配器子類中),並根據項目是否存在於列表變量中設置正確的 state(選中/未選中)。

private List<MyItem> mCheckedItems; //In your adapter subclass

從列表變量中添加/刪除項目:

//The AdapterView.OnItemClickListener, is present where you set myListView.setOnItemClickListener(this);
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id)
{

    MyItem item = myAdapter.getItem(position);
    myAdapter.updateCheckedItems(item);
}

public void updateCheckedItems(MyItem item) //In your adapter subclass
{
        if(!mCheckedItems.contains(item))
        {
            mCheckedItems.add(item);
        }
        else
        {
            mCheckedItems.remove(item);
        }
}

設置復選框的正確 state:

public View getView(int position , View view , ViewGroup parent) //In your adapter subclass
{
     final MyItem item = getItem(position);
     CheckBox checkBox = (CheckBox)view.findViewById(R.id.checkBox);
     checkBox.setChecked(mCheckedItems.contains(item));
}

暫無
暫無

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

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