[英]Populate TextViews and Buttons from SQLite in Android
我是Android开发的新手,我对如何动态显示数据感到困惑...
我有一个RelativeLayout活动类型,其中有3个Textview,3个按钮和一个ImageView。
我想要实现的是使用SQLite数据库动态填充这些项目。
假设我进行查询并得到3行,那么它应该具有我上面提到的所有结构,但是用它们各自的数据重复3次。
作为自定义列表?
在我看过的文档中,许多人不从数据库中获取数据,而是从StringArray获取数据,其他人从数据库中获取数据但显示在列表中...
视觉上结构是这样的:
现在,图像永远是金发碧眼的女人......但我想填写至少TextViews。 从某种意义上说,如果查询得到2行,那么你应该看到类似的东西
他们会如此善意地解释我能以什么方式完成这项工作?
有几种方法可以做到这一点,但你可能想要一个带有CursorAdapter的ListView。 CursorAdaptertakes一个Cursor作为输入,并显示单个行的外观。 CursorAdapter看起来像这样:
private class SpecialCursorAdapter extends CursorAdapter {
public SpecialCursorAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
//Any other major setup needs to happen here.
}
@Override
public void bindView(View v, Context context, Cursor cursor) {
//Take the view as given in newView, and populate it with the dat afrom cursor.
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
LinearLayout row = (LinearLayout) mInflater.inflate(
R.layout.data_row, parent, false);
//Inflate the row
return row;
}
}
Cursor填充了标准查询,有足够的资源如何做到这一点。 您从膨胀的XML代码中获取ListView指针,并执行以下操作:
ListView listvew=...;
Cursor cursoer=...;
SpecialCursorAdapter adapter=new SpecialCursorAdapter(this,cursor,0);
listview.setAdpater(adapater);
我经常将它用于这样的非常大的数据集,并且它运行良好。
ListView是这种情况的最佳选择,您只需要为listview创建自己的自定义适配器。
还要为数据创建数据结构并将它们放入列表并将其发送到Adapter,然后在适配器中的getView()方法中处理它。
创建包含按钮,imageview和textview的列表项布局,并在自定义适配器中使用它。
class MyData{
String someText;
String someText2;
String buttonText;
}
List<MyData> list = new ArrayList<MyData>();
public class MyAdapter extends BaseAdapter{
public MyAdapter(Context c, List<MyData> list){
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// inflate your custom list item layout and put your data
}
}
样本在这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.