簡體   English   中英

Listview和復選框問題Android Studio

[英]Listview and checkbox problem Android Studio

我正在為 android 工作室應用程序使用 SQLite 數據庫,並且我正在使用 ListView 來顯示數據。 我最近放了一個復選框(沒有在數據庫中添加任何內容),我遇到的問題是,當我在 ListView 中選中一個框和 go 時(我指定當我在列表中有很多項目時它會做我)我框未選中或任意一個框被隨機選中。

這是我在適配器中的代碼:

 @Override public View getView(int i, View view, ViewGroup viewGroup) { //déclaration d"un horlder final ViewHolder holder; // si la ligne n'existe pas encor if(view == null) { holder = new ViewHolder(); // la ligne est construite avec un formatage (inflater) relié à layoutlistpremierp view = inflater.inflate(R.layout.layoutlistsacview, null); //chaque propriété du holder est relié a une propriété graphique holder.checksac = (CheckBox) view.findViewById(R.id.checksac); // affceter le holder à la vue view.setTag(holder); }else{ //récup du holder dans la ligne existante holder = (ViewHolder) view.getTag(); } // valorisation du contenu du holder (donc de la ligne) holder.checksac.setText(LesAjoutSac.get(i).getObjetSac()); return view; } private class ViewHolder{ CheckBox checksac; }

我該如何解決?

您需要為將保存復選框狀態的每一行的數據保留一個列表,並在適配器上標記checkbox.isChecked = list[position].isChecked然后您需要向檢查框添加一個偵聽器以標記列表中的數據list[position]..isChecked = isChecked //isChecked 來自監聽器

您可以在此處查看我的示例,但它使用了 recyclerView(我強烈推薦它而不是 listView!)

在你的適配器中添加這個:

@Override
public int getCount() {
    return items.size();
}

@Override
public Object getItem(int position) {
    return items.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

暫無
暫無

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

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