将字符串转换为对象名称.IERstring.objectname

uss*_*rr1 0 java string android object

我无法弄清楚如何使用sting作为对象名称.让我解释.我有一个动态分配的图像,我标记.我将该标记作为字符串,并且我有一个与标记同名的存储字符串(定义).我不能使用与sting名称相同的标签来设置SetText().这是我想要实现的目标:

        public void ShowDefinition(ImageView v){
        String str=(String) v.getTag();
        setContentView(R.layout.ditionary);
        TextView t = (TextView)findViewById(R.id.definition);
        if(str == "def1")
            t.setText(R.string.def1);
        if(str == "def2")
            t.setText(R.string.def2)
        }
Run Code Online (Sandbox Code Playgroud)

if语句是我想以更简单的方式做的事情.字符串str是从标签中拉出的字符串.正如你所看到的,android资源字符串具有相同的名称,但我无法想出在setText参数中使用str的任何方法.有任何想法吗?

got*_*o10 5

使用Resources.getIdentifier(...)按名称查找资源ID.

public void ShowDefinition(ImageView v) {
    String str=(String) v.getTag();
    setContentView(R.layout.ditionary);
    TextView t = (TextView)findViewById(R.id.definition);
    t.setText(getResources().getIdentifier(str, "string", "com.your.package.name"));
Run Code Online (Sandbox Code Playgroud)

替换com.your.package.name为您的应用程序的包名称.