android - 为非 ListView 使用适配器

标签 android

我正在使用 SimpleCursorAdapter 用我的数据库中的项目填充 ListView。当用户单击某个项目时,会将他们带到该项目的详细 Activity 。显示该页面的最佳做法是什么?只需编写一个显示函数来获取我想要为其设置文本的所有 TextViews 并从数据库中填充它们,或者使用另一个 SimpleCursorAdapter 来设置 TextViews?如果答案是使用适配器,我是否必须将详细信息页面推送到 ListView 中?

最佳答案

我认为最好的方法是在列表 Activity 中提取一些 ID,并将该 ID(有意)传递给详细 Activity。

如果数据不是那么多,您可以在 intent 的 extras 中发送所有内容。问题在于 Intent 并非旨在将复杂数据(既不是大量数据)从一个 Activity 发送到另一个 Activity 。

在细节 Activity 中,您应该从数据库中获取数据(例如:select * from people where id = 123)。现在您可以将该表的列映射到一个简单的对象。

例如:

public class Person {
    String name;
    Integer age;
    String address;
}

作为最后一步,要向您的用户显示数据,请从您的布局中获取一些 TextView ,并使用您从数据库中获得的 person 中的值设置它们的文本。

TextView ageTv = (TextView)findViewById(R.id.age);
ageTv.setText(person.age + " years old");
//etc

没有必要在详细 Activity 中使用 ListView

关于android - 为非 ListView 使用适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4831330/

相关文章:

android - AlphaAnimation 优于 SurfaceView?

android 解析 sdk 与 Facebook sdk

java - 在用户选择的时间设置通知

工作开始后 Android 工作管理器约束发生变化

android - android SDK 中缺少 platform-tools\aapt.exe 目录

java - 按下主页按钮时在android中保存 Activity 状态

android - 减去 R 中数据框中的列。 A-B=已校正 A。这些是传感器中从数据帧 B 寻求校正的抽象值

android - Linphone Android 2013 版本中的 Opus 音频编解码器

android - 在 Android SQLite 中检索两个日期之间的数据

android - 如何执行 graph-api Facebook Android SDK