【问题标题】:Android : Deleting an item from listview as well as databaseAndroid:从列表视图和数据库中删除项目
【发布时间】:2015-05-09 16:17:32
【问题描述】:

我有一个列表视图,我在其中添加从我的数据库中的表中检索到的值的项目。现在,在当前场景中,如果我要删除一个项目,我将传递完整的字符串并将其拆分为部分,以便为我的删除查询提供信息。

代替所有这些愚蠢的工作,我可以简单地传递该特定项目的 id,但 id 不在绑定到列表视图的字符串数组中。如何通过简单地使用项目的 ID 从数据库中删除项目...?

注意:id 是表中的列,所以我从数据库中获取每个项目的 id。但我没有在列表视图中显示它。

   String[] records = new String[report.size()];
        for(int i = 0; i<report.size(); i++)
        {
            if(report.get(i).getDate()!="")
            {
                String eachRecord = (i+1) +". "+report.get(i).getDate() + " -- " + report.get(i).getType();
                records[i] = eachRecord;
            }

        }

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.singlerow, records);
        listView.setAdapter(adapter);

【问题讨论】:

  • 请输入代码!任何代码。
  • 从数据库中删除然后重新加载 ListView 是一种选择。
  • 就像 getDate() 和 getType(),我也有 getId()。但我在我的列表视图中显示一个没有 id 的字符串。我想我的问题现在很清楚了。
  • ListView 项目的 id 与您表中的 id 相同。 stackoverflow.com/questions/12671119/…
  • 我已阅读有关自定义适配器的信息。这里需要吗..?

标签: android android-listview


【解决方案1】:

您应该将从数据库获取的数据映射到 java 对象。

从数据库中读取数据存储在列表或数组中。

通过扩展 BaseAdaper REF 创建您的自定义适配器并将您的对象列表传递给它。

在 Adapter 的 getView 中构建您的视图。

现在,当您删除列表项时,您可以轻松找到该对象并询问它的 ID。您可以使用此 id 从数据库中删除项目。现在您可以使用剩余数据刷新列表。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多