目前,我可以通过groupPosition和childPosition选中/取消选中复选框,它运行正常。我将groupPosition和childPosition保存到SQLite数据库。
当我添加删除选项时,我的复选框选中状态已关闭/搞砸了。
例如,我有以下内容:
Group1,
Child1,Child2,Child3
我检查所有3个并将检查的位置保存到SQLite数据库。 检查的位置在数据库中将是0,0和0,1和0.2。
删除Child1后,
Child2变为位置0,Child3变为位置1,这将使检查状态变得混乱。
我试图找到一种方法来保存组名和子名而不是位置到SQLite数据库,然后在Oncrete方法中加载这些名称。
MainActivity:
if(category_array.get(groupPosition).subcategory_array.get(childPosition).selected) {
category_array.get(groupPosition).subcategory_array.get(childPosition).selected = false;
try{
MySQLITE_DATABASE.deleteRows(groupPosition, childPosition);
}
catch (Exception e) {}
}
else
{
category_array.get(groupPosition).subcategory_array.get(childPosition).selected = true;
MySQLITE_DATABASE.addRow(groupPosition, childPosition);
}
适配器代码:
private List<Category> mGroupCollection;
if(mGroupCollection.get(groupPosition).subcategory_array.get(childPosition).selected) {
childHolder.checkBox.setBackgroundResource(R.drawable.checkbox_checked);
} else {
childHolder.checkBox.setBackgroundResource(R.drawable.checkbox_unchecked);
}
日期持有人课程:
public class Category {
public String category_name = null;
public String cat_SelectedChildCount_name;
public ArrayList<SubCategory> subcategory_array = new ArrayList<SubCategory>();
}
//==============================
public class SubCategory {
public String subcategory_name = null;
public boolean selected = false;
}
我想将组名和子名称而不是位置保存到SQLite数据库,然后在OnCreate方法中加载它们。
我试过这个,但它不起作用:
String Group_Name = category_array.get(Integer.parseInt(groupPosition)).category_name;
String Child_Name = category_array.get(Integer.parseInt(groupPosition)).
subcategory_array.get(Integer.parseInt(childPosition)).subcategory_name;
if(category_array.get(Group_Name).subcategory_array.get(Child_Name).selected) {
category_array.get(Group_Name).subcategory_array.get(Child_Name).selected = false;
MySQLITE_DATABASE.DeleteRow(Group_Name, Child_Name);
}
else {
category_array.get(Group_Name).subcategory_array.get(Child_Name).selected = true;
MySQLITE_DATABASE.AddRow(Group_Name, Child_Name);
}
我知道我需要更改适配器,数据持有者类和主要活动中的代码才能使其正常工作,但我没有想法。我一直在思考和思考,但没有任何作用......
请有人请指导我吗?
我很抱歉长码。
谢谢,谢谢。
答案 0 :(得分:1)
如果符合您的要求,请尝试以下任何一项。
如果你想严格使用这个职位(可能没有独特的选择)
| id | parent_position | child_position |
假设您有N个孩子。如果你删除了一个孩子(假设它是0)。这样做
我个人建议如果有删除选项,请不要使用position
。我找到的选项,但不知道你的用例
primarykey
作为密钥,将其保存在选择/取消选择的SQLite database
中。在这种情况下,您也不想知道父位置。