gpt4 book ai didi

android - 如何从 ListView onClickAdapter 的数据库中删除一行?

转载 作者:行者123 更新时间:2023-11-30 01:02:18 25 4
gpt4 key购买 nike

我想通过从 ListView 中单击来删除数据库中的一行!我已设置好所有内容,但是当我这样做时,A) 不会删除该行。或 B) 删除顶行!让我知道我做错了什么!谢谢!

这是在我的数据库中:

 public boolean deleteKey(String name)
{
SQLiteDatabase db = this.getWritableDatabase();
return db.delete(KeyEntry.TABLE_NAME, KeyEntry.KEY_ID + "=?",
new String[]{name})>0;
}

这是我的 ListView :

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view__list);
list = (ListView) findViewById(R.id.ListView1);
openDatabase();
list.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, keyList));
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parentAdapter, View view,
int position, long id)
{
String name = String.valueOf(id);
keyManager.deleteKey(name);
Toast.makeText(View_List.this, "Key will be deleted",
Toast.LENGTH_LONG).show();
}
});
}

我哪里出错了?

最佳答案

ArrayAdapter 将位置返回为 id。那么 id 与数据库上的 KeyEntry.KEY_ID 不匹配。

同时使用Database 和ListView 的最佳方法是使用CursorAdapter。在这种情况下,onItemClick Listener 中的 id 参数将是数据库 id。 CursorAdapter 需要更多代码来实现,但它更加灵活。

关于android - 如何从 ListView onClickAdapter 的数据库中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20011889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com