我想允许我的用户在TextView
中输入一个单词,然后在ImageView
中显示相应的图片。例如,用户可能会输入“Moon”,然后我会显示moon.png
。
我怎么能实现这个目标?
答案 0 :(得分:1)
Resources
类有一个方法getIdentifier()
,你可以在这里使用。
int getIdentifier(String name, String defType, String defPackage)
返回给定资源名称的资源标识符。完全限定的资源名称的格式为“package:type / entry”。前两个组件(包和类型)是可选的,如果在此指定defType和defPackage。
注意:不鼓励使用此功能。按标识符检索资源比按名称检索资源要高效得多。
这意味着你可以写:
String userEntered = myEditText.getText().toString();
int id = getResources().getIdentifier(userEntered, "drawable", getPackageName());
myImageView.setImageResource(id);
答案 1 :(得分:0)
// Find TextView and ImageView, if required
TextView myTextView = (TextView) findViewById(R.id.tv);
ImageView myImageView = (ImageView) findViewById(R.id.iv);
// Get text from TextView
String myText = textView.getText().toString();
// Get ID of drawable with name entered by user
Context context = myImageView.getContext();
int id = context.getResources().getIdentifier(myText, "drawable", context.getPackageName());
// Set that drawable as the image to be displayed in the ImageView
myImageView.setImageResource(id);