Android 如何使用数据库显示包含图片和文本的列表视图

Android 如何使用数据库显示包含图片和文本的列表视图,android,android-layout,Android,Android Layout,我有一个应用程序,将显示一个简单的listview。listview将显示SQLite数据库特定表的内容 在数据库表中,我有3个字段ID、名称和图片 一个示例行是: ID : 1 Name : Glass Picture : @drawable/glass 是否可以使用列表视图或任何其他方式查看此信息。 如果有意义的话,我需要ListView在一个ListView部分中显示ID,然后是图片,然后是名称 谢谢 //编辑 此外,数据库位于应用程序的assets文件夹中,这是正确的方法吗?此代码加载

我有一个应用程序,将显示一个简单的listview。listview将显示SQLite数据库特定表的内容

在数据库表中,我有3个字段<代码>ID、名称和图片

一个示例行是:

ID : 1
Name : Glass
Picture : @drawable/glass
是否可以使用列表视图或任何其他方式查看此信息。 如果有意义的话,我需要ListView在一个ListView部分中显示ID,然后是图片,然后是名称

谢谢

//编辑
此外,数据库位于应用程序的assets文件夹中,这是正确的方法吗?

此代码加载一个带有图像和文本的列表视图,并将其引用和编辑以供您使用(来自lazy adapter的示例代码)

公共类abcdadapter扩展了BaseAdapter{
私人活动;
私有字符串[]数据;
私人ArrayList dat;
专用静态充气机=空;
公共图像加载器;
公共abcdadapter(活动a,ArrayList保存,字符串[]图像){
活动=a;
dat=保存;
数据=图像;
充气器=(LayoutInflater)activity.getSystemService(Context.LAYOUT\u充气器\u SERVICE);
imageLoader=新的imageLoader(activity.getApplicationContext());
}
public int getCount(){
返回数据长度;
}
公共对象getItem(int位置){
返回位置;
}
公共长getItemId(int位置){
返回位置;
}
公共静态类视图持有者{
公共文本查看文本;
公众形象;
}
公共视图getView(int位置、视图转换视图、视图组父视图){
返回父母;
视图vi=转换视图;
视窗座;
if(convertView==null){
vi=充气机充气(R.layout.item,空);
holder=新的ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.text);
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(支架);
}
其他的
holder=(ViewHolder)vi.getTag();
holder.text.setText(dat.get(position.get(“NAME”));
//holder.image.setTag(data[position]);//从drawable设置图像
//imageLoader.DisplayImage(数据[位置]、活动、持有者.image);
返回vi;
}

当然,您可以使用列表视图来实现此目的,最好为此目的创建一个适配器扩展基本适配器您不需要将数据库保存在内存或SD卡中。启动应用程序后,您需要将“资产”文件夹复制到内存或外部内存中。
public class abcdadapter extends BaseAdapter {

private Activity activity;
private String[] data;
private ArrayList<HashMap<String, String>> dat;

private static LayoutInflater inflater=null;
public ImageLoader imageLoader; 

public abcdadapter(Activity a, ArrayList<HashMap<String, String>> save,String[] images) {
    activity = a;

    dat=save;
    data=images;
    inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    imageLoader=new ImageLoader(activity.getApplicationContext());
}

public int getCount() {
    return data.length;
}

public Object getItem(int position) {
    return position;
}

public long getItemId(int position) {
    return position;
}

public static class ViewHolder{
    public TextView text;
    public ImageView image;
}

public View getView(int position, View convertView, ViewGroup parent) {
    return parent;
    View vi=convertView;
    ViewHolder holder;
    if(convertView==null){
        vi = inflater.inflate(R.layout.item, null);
        holder=new ViewHolder();
        holder.text=(TextView)vi.findViewById(R.id.text);
        holder.image=(ImageView)vi.findViewById(R.id.image);
        vi.setTag(holder);
    }
    else
        holder=(ViewHolder)vi.getTag();

    holder.text.setText(dat.get(position).get("NAME"));
 //   holder.image.setTag(data[position]);     // set your image from drawable
  //  imageLoader.DisplayImage(data[position], activity, holder.image);

    return vi;

}