Android 我在drawable文件夹中有图像,它们的名称存储在sqlite中。如何根据这些名称显示drawable中的图像?

Android 我在drawable文件夹中有图像,它们的名称存储在sqlite中。如何根据这些名称显示drawable中的图像?,android,android-listview,android-sqlite,android-imageview,Android,Android Listview,Android Sqlite,Android Imageview,我有一个android应用程序,它使用SQLite存储和检索数据 在我的项目中,我在drawable文件夹中有图像,我将它们的名称存储在SQLite数据库中,我想要的是根据它们的名称在ListView中显示这些图像 我知道我需要将字段名称添加到代码中,但是如何将图像链接到其名称 这是我的代码: MatchScheduleList.java package com.devleb.expandablelistdemo3; 导入java.util.ArrayList; 导入android.os.Bun

我有一个android应用程序,它使用SQLite存储和检索数据

在我的项目中,我在drawable文件夹中有图像,我将它们的名称存储在
SQLite
数据库中,我想要的是根据它们的名称在
ListView
中显示这些图像

我知道我需要将字段名称添加到代码中,但是如何将图像链接到其名称

这是我的代码:

MatchScheduleList.java
package com.devleb.expandablelistdemo3;
导入java.util.ArrayList;
导入android.os.Bundle;
导入android.app.Activity;
导入android.app.ListActivity;
导入android.database.Cursor;
导入android.database.sqlite.SQLiteDatabase;
导入android.support.v4.widget.SimpleCursorAdapter;
导入android.util.Log;
导入android.view.Menu;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
导入android.widget.AdapterView.OnItemClickListener;
公共类MatchScheduleList扩展活动{
私有静态最终字符串DB_NAME=“world_cup.DB”;
//******表名称**************************//
私有静态最终字符串表\u NAME=“match\u list”;
//******t商标名称******************************//
公共静态最终字符串PLACE_ID=“_ID”;
公共静态最终字符串STAD_NAME=“STAD_NAME”;
公共静态最终字符串TEAM1=“TEAM1”;
公共静态最终字符串TEAM2=“TEAM2”;
公共静态最终字符串STAGE=“STAGE”;
公共静态最终字符串MATCH\u DATE=“MATCH\u DATE”;
公共静态最终字符串GROUP=“GROUP”;
公共静态最终字符串[]所有密钥=新字符串[]{PLACE\u ID,STAD\u NAME,
第1组,第2组,阶段,比赛日期,小组};
//******t商标名称******************************//
专用数据库;
私有列表视图列表视图;
私有ArrayList匹配列表;
私有ExternalDbOpenHelper extDB;
int[]img={R.drawable.Brazic_旗,R.drawable.croatian_旗,
R.drawable.mexico_旗,R.drawable.Cameron_旗,R.drawable.spain旗,
荷兰国旗,捷克共和国国旗,
R.drawable.australia,R.drawable.colombia_flag,R.drawable.gress,
R.drawable.cote_divoire_旗帜,R.drawable.japan,
R.drawable.乌拉圭国旗,R.drawable.哥斯达黎加国旗,
英国国旗,意大利国旗,
R.drawable.switzerland,R.drawable.ecuador_旗,
法国国旗,洪都拉斯国旗,
R.drawable.argentina_旗,R.drawable.bousna旗,R.drawable.iran_旗,
R.drawable.nigeria_旗,R.drawable.germany_旗,
R.drawable.葡萄牙,R.drawable.加纳国旗,
R.drawable.美国国旗,R.drawable.比利时国旗,
R.drawable.algeria_旗,R.drawable.russia_旗,
R.drawable.korea_flag};
int-nextImageIndex=0;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u match\u schedule\u list);
ExternalDbOpenHelper extDB=新的ExternalDbOpenHelper(这个,DB\u名称);
database=extDB.openDataBase();
int imgid=img[nextImageIndex];
nextImageIndex=(nextImageIndex+1)%img.length;
populateLitsFromDB();
}
公共游标getAllRows(){
字符串,其中=null;
游标c=database.query(true,表名称,所有键,其中,null,
空,空,空,空);
如果(c!=null){
c、 moveToFirst();
}
返回c;
}
私有void populateLitsFromDB(){
//TODO自动生成的方法存根
游标=getAllRows();
//AllowActivity管理光标的生命周期
开始管理游标(游标);
//设置从光标到视图字段的映射
String[]fromFieldNames=新字符串[]{MATCH_DATE,TEAM1,TEAM2,STAD_NAME,GROUP};
int[]toViewFields=newint[]{R.id.txtDate,R.id.textName1,R.id.textName2,R.id.textLocation,R.id.textGroup};
//创建适配器以将DB的列映射到列表中的元素
SimpleCursorAdapter myCursorAdapter=新的SimpleCursorAdapter(此,
R.layout.row\u list\u match\u schedule,游标,fromFieldName,
toViewFields);
Log.d(“在getAllRows中”,myCursorAdapter.toString());
//为te listView设置适配器
ListView myList=(ListView)findViewById(R.id.list);
设置适配器(myCursorAdapter);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.match\u schedule\u list,menu);
返回true;
}
}
试试这个:

String imgName = "ic_launcher"; // specify here your image name fetched from db
String uri = "drawable/" + imgName;
int icon = getResources().getIdentifier(uri, "drawable", getPackageName());
imageView.setImageResource(icon);

在这个解决方案中,如何根据my code将图像与其存储在sqlite中的名称链接在哪个字段中您从db获取图像名称?我将添加两个字段名称:FLAGS1,FLAGS2这两个名称字段将在sqlite数据库中包含您不会在
populateLitsFromDB()中获取的图像名称。
。对的您将创建另一个获取所有图像名称的方法?不,实际上我正在考虑在populateListFromDB()中获取图像,这是错误的吗??因为我需要在populateListFromDB()方法中已经创建的同一个listview中显示图像
String imgName = "ic_launcher"; // specify here your image name fetched from db
String uri = "drawable/" + imgName;
int icon = getResources().getIdentifier(uri, "drawable", getPackageName());
imageView.setImageResource(icon);