我正在使用SimpleCursorAdapter用我的数据库中的项填充ListView。当用户单击某个项目时,它会将其带到该项目的详细活动。显示该页面的最佳做法是什么;只需编写一个显示函数来抓取我想要设置文本的所有TextView并从数据库中填充它们或使用另一个SimpleCursorAdapter来设置TextViews?如果答案是使用适配器,我是否必须在ListView中推送详细信息页面?
答案 0 :(得分:4)
我认为最好的方法是在列表活动中提取一些id,并将该id(在intent中)传递给detail Activity。
如果数据不是那么多,你可以在意图的附加内容中发送所有内容。问题在于意图并非旨在将复杂数据(无论是大量数据)从一个活动发送到另一个活动。
在详细活动中,您应该从数据库中获取数据(例如:select * from people where id = 123
)。现在,您可以将该表的列映射到一个简单的对象。
例如:
public class Person {
String name;
Integer age;
String address;
}
作为最后一步,要向用户显示数据,请从布局中获取一些文本视图,并使用您从数据库中获得的值设置文本。
TextView ageTv = (TextView)findViewById(R.id.age);
ageTv.setText(person.age + " years old");
//etc
无需在详细活动中使用ListView
答案 1 :(得分:1)
杰森
在这种情况下,您无需使用适配器,它比必要的更复杂,更耗费资源。 ListViews带来了很多副作用,包括但不限于:
基本上,你不恰当地使用ListView
和Adapter
范例浪费了内存和cpu时间。您所需要的只是Cursor
用于显示数据,TextViews
用于显示数据,ScrollView
和(LinearLayout
|| RelativeLayout
)来保存{{1}如果它们太大而无法立即适合屏幕,则会滚动。
答案 2 :(得分:0)
这样做的几种方法:
这实际上取决于你试图解决的问题。是不是SimpleCursorAdapter与数组逻辑相比,是一个整齐的解决方案,所有这些设置,获取东西?