【发布时间】:2011-10-16 14:32:17
【问题描述】:
关于如何从列表中删除项目有很多问题,但我找不到我要找的那个。
所以基本上,我有一个列表和数据库,如何从列表和数据库中删除?
因为我的列表是从ArrayList<String> 填充的,所以一项只是字符串。例如,我的列表中有两个项目,例如 - 1.John,Doe 2.Jane,Doe
我如何获得这些项目的 ID?
如果我使用此代码并通过单击项目检查 id:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),
Long.toString(parent.getItemIdAtPosition(position)) ,
Toast.LENGTH_SHORT).show(); }});
它显示 0 或 1,但不显示 1 或 2。(这很合乎逻辑)
所以是的,我如何获得这些物品的ID?我现在能想到的唯一选择是获取列表项的前两个或三个字符并将它们转换为 int 并传递给我的 SQL 语句,然后我从数据库中删除相应的项目。
也许有人有更好的想法?
已编辑:
private void getAllData()
{
cursor = myDataBase.rawQuery("SELECT * FROM " +
MY_TABLE, null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
int id = cursor.getInt(cursor.getColumnIndex("Id"));
String persName = cursor.getString(cursor.getColumnIndex("Name"));
String persSurname= cursor.getString(cursor.getColumnIndex("Surname"));
results.add("" + id + ", " + persName + ", " + persSurname);
} while (cursor.moveToNext());
}
cursor.close();
}
}
而results 是private List<String> results = new ArrayList<String>(); 我希望这就是你要问的。
【问题讨论】:
-
我能看到一些代码,说明您是如何从数据库中检索数据的,以及如何将您想要的
String对象放入适配器中? -
@Pzanno 在我的帖子中添加了代码。
-
是的,这正是我想要的。我已经发布了一个适合您的答案,还建议您使用
SimpleCursorAdapter来获取您可能从数据库中创建的未来列表。