学習課題としてチェックリストアプリを作っています。基本はうまく機能しています。今、いくつかの機能を追加しようとしています。
リストをカテゴリ別に ( で) 並べ替えるとき、カテゴリexpandablelistview
のすべてのコンテンツがチェックされている場合は、カテゴリ グループ ビューをチェックする必要があります。
特定のリスト項目を含むテーブルで、個々のリスト項目がチェックされているかどうかのフラグを保持します。単純な 1/0 フラグを使用して、チェックされているかチェックされていないかを示します。私の機能を実装する私の考えは、クエリで次のようなものを使用して、すべての項目がチェックされているかどうかを確認することです。
CASE WHEN sum(list_items.checked) = count(list_items.checked) THEN 1 ELSE 0 END AS 'groupchecked'
それらがすべてチェックされている場合(1)、それらすべての合計はそれらすべての数と等しくなるはずだと考えています...ただし、そのコードをクエリに挿入すると、カテゴリごとに複数のアイテムがあるものは表示されません上。この問題は、SQLite に慣れていないことが原因であると確信していますが、これを機能させる適切な方法を理解できないようです。
チェック済みフラグを使用してグループカーソルをフェッチする現在の試み:
public Cursor fetchGroup(String group, long list) {
String query = "SELECT DISTINCT "
+ group
+ " AS _id, CASE WHEN sum(list_items.checked) = count(list_items.checked) THEN 1 ELSE 0 END AS groupchecked FROM "
+ LISTITEM_TABLE
+ " JOIN "
+ ITEM_TABLE
+ " ON list_items.item_id=items._id WHERE list_items.list_id = "
+ list;
return mDb.rawQuery(query, null);
}