[英]How can i get an image from drawable using image name stored in SQLite?
我正在尝试使用 SQLite 开发一个 Android 测验应用程序。我的数据库有一个包含问题和答案的表。 问题可能有文字或图像。 因此,我将图像放入可绘制对象中,并将名称放入测验表的列中。 我尝试在与我的每个测验问题相关联的 ImageView 中加载图像的内容(使用该列的值),但我不确定我是否使用了正确的代码。我不想使用 blob。 有什么建议吗? 任何答案将不胜感激。 谢谢你。
这就是我想写的,以便从 db 和 drawable 调用图像:
`String y = "R.drawable."+currentQuestion.getImage();
tvImgQuest.setImageResource(Integer.parseInt (y));`
这是我使用的方法:
`private void showNextQuestion()
{
radioButton1.setTextColor (textColorDefaultRb);
radioButton2.setTextColor (textColorDefaultRb);
radioButton3.setTextColor (textColorDefaultRb);
radioButton4.setTextColor (textColorDefaultRb);
radioGroup.clearCheck();
if (questionCounter < questionCountTotal )
{
currentQuestion = questionList.get(questionCounter);
tvQuestion.setText(currentQuestion.getQuestion ());
if(currentQuestion.getImage() == null || currentQuestion.getImage().isEmpty()) {
tvImgQuest.setVisibility (View.INVISIBLE);}
else{
ImageView tvImgQuest=(ImageView) findViewById(R.id.tvImgQuest);
tvImgQuest.setVisibility (View.VISIBLE);
String y = "R.drawable."+currentQuestion.getImage();
tvImgQuest.setImageResource(Integer.parseInt (y));
}
radioButton1.setText(currentQuestion.getAnswer1 ());
radioButton2.setText(currentQuestion.getAnswer2 ());
radioButton3.setText(currentQuestion.getAnswer3 ());
/**Hide radio button in case possible answers are three */
if(currentQuestion.getAnswer4() == null || currentQuestion.getAnswer4().isEmpty()) {
radioButton4.setVisibility(View.INVISIBLE);
} else {
radioButton4.setVisibility(View.VISIBLE);
radioButton4.setText(currentQuestion.getAnswer4());
}
questionCounter++;
tvQuestionCount.setText("Question: " + questionCounter + "/" + questionCountTotal);
answered = false;
butconfirmAns.setText("Submit");
}
else {
finishQuiz();
}
}`
控制台
桌子
`public static class QuestionTable implements BaseColumns {
public static final String TABLE_NAME = "quiz_question";
public static final String COLUMN_QUESTION = "question";
public static final String COLUMN_IMAGE = "image";
public static final String COLUMN_ANSWER1 = "answer1";
public static final String COLUMN_ANSWER2 = "answer2";
public static final String COLUMN_ANSWER3 = "answer3";
public static final String COLUMN_ANSWER4 = "answer4";
public static final String COLUMN_ANSWERNUM = "answerNum";
`
可绘制
可绘制的 id 是 integer 并且它不是可以转换为 integer 的字符串,您的代码必须是这样的:
Context context =tvImgQuest.getContext();
int id = context.getResources().getIdentifier(name, "drawable", context .getPackageName());
tvImgQuest.setImageResource(id);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.