我有一个包含存储int和string的表的数据库。整数值是主键。我创建了一个函数来从数据库中获取字符串并将它们存储在一个列表中,然后使用ArrayAdapter将其应用于ListView。如下所示。
List<String> list = db.getAllStringNotes();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_activated_1, list);
listview.setAdapter(adapter);
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
问题是从此列表视图中删除。由于主键不与字符串一起出现,我使用从列表视图中选择的项目的位置进行删除。但是如果我从列表中间删除一个条目,这显然会弄乱一些事情。
所以想知道我是否可以将主键,即整数值添加到此列表视图以及字符串但不显示整数值?
答案 0 :(得分:2)
简单的事就是创建两个List,
1. String - Stored String notes
2. Integer - Stored all Primary Keys
因此,只要用户点击Listview
用户获取其位置,并根据该位置获取第二个列表中的主键值,然后执行删除查询。
答案 1 :(得分:0)
有很多方法可以做到这一点:但是因为你已经在使用ArrayList所以我建议你在从数据库中提取时再创建一个arraylist:
因此在使用位置删除时: 使用 PrimaryKeyArrayList 中的主键 并从ArrayList;
中删除值有了这个,你就能得到你所需要的东西;
答案 2 :(得分:0)
请按照以下步骤操作:
编辑:
Bean文件:
public class MyDB_Bean{
public int id;
public String data;
MyDB_Bean(int id,String data){
this.id=id;
this.data=data;
}
}
从活动中调用
ArrayList<MyDB_Bean> list = db.getAllStringNotes();
MyArrayAdapter adapter = new MyArrayAdapter<String>(this,list);
listview.setAdapter(adapter);
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
对于 CustomAdapter ,请按照以下教程
进行操作http://www.ezzylearning.com/tutorial.aspx?tid=1763429
http://www.vogella.com/tutorials/AndroidListView/article.html
http://learnandroideasily.blogspot.in/2013/06/listview-with-custom-adapter.html