如何使用 SQLite 中的数据实现自定义 ArrayAdapter

Posted

技术标签:

【中文标题】如何使用 SQLite 中的数据实现自定义 ArrayAdapter【英文标题】:How to implement a Custom ArrayAdapter with data from SQLite 【发布时间】:2014-09-08 22:55:45 【问题描述】:

我正在开发一个应用程序,其中包含一个列表,该列表应显示之前在 sqlite 数据库上注册的用户的姓名、电话和电子邮件地址。在每一行中也会有两个按钮。

类似这样的:

ListFragment:
-------------------- 
[Name 1] 
[Phone 1] 
[E-mail 1] 
[Button 1][Button 2] 
-------------------- 
[Name 2] 
[Phone 2] 
[E-mail 2] 
[Button 1][Button 2] 
-------------------- 
... (and so on) ...

按钮 1 将拨打电话,按钮 2 将向此人发送电子邮件。详细来说,这些按钮是可点击的 ImageView。

我设法正确地创建了 XML。

而且我知道我需要使用我的 SQLite 数据库中的数据实现一个自定义 ArrayAdapter。

我真的需要知道使用来自 SQLite 的数据实现自定义 ArrayAdapter 的最佳方法是什么?我看到了很多不同的方式,我完全糊涂了。

请问有人可以帮我解决这个问题吗? 如果有教程详细解释如何做到这一点,我非常感谢。

【问题讨论】:

“我知道我需要用我的 SQLite 数据库中的数据实现一个自定义 ArrayAdapter。”不,你不需要任何 ArrayAdapter,你需要的是一个 SimpleCursorAdapter 我试过 SimpleCursorAdapter。但不起作用,因为 SimpleCursorAdapter 不允许对按钮执行操作。 This 是我在学习 android 列表和 SQLite 时使用的教程。我同意@pskink 的观点,您需要的可能是 SimpleCursorAdapter,而不是 ArrayAdapter。 我现在尝试使用 SimpleCursorAdapter。但它没有用。显示用户的信息,但我无法使按钮工作。记住我的主要目标是,当点击第一个按钮时,拨打列表中行的电话号码,当点击第二个按钮时,向该用户发送一封电子邮件。 即在listfragment中执行不同动作的多个可点击部分 【参考方案1】:

看起来this question 有您正在寻找的答案。您也可以尝试this question 中已接受答案中的链接。

基本上,看起来你想要做的是:

    创建SimpleCursorAdapter 的自定义后代 覆盖getView
      使用自定义视图处理行膨胀 为每个按钮设置OnClickListeners

【讨论】:

以上是关于如何使用 SQLite 中的数据实现自定义 ArrayAdapter的主要内容,如果未能解决你的问题,请参考以下文章

qt实现-给SQLITE添加自定义函数

如何使用 QThreadStorage 调用自定义免费?

如何将自定义适配器添加到活动中以使列表出现在活动中?

Android 从 SQLite 数据库填充自定义 ListView

html5 sqlite位置可不可以自定义

Android:SQLite 中的自定义排序规则