![](/img/trans.png)
[英]Getting String Array in Android from .xml using Resources.getSystem()
[英]Android resources getting string names “dynamicaly”
我有2个活动,其中一个带有ID的按钮。 根据您单击的按钮,ID会通过其意图传递给第二个活动。 然后,在第二个活动中,我想基于该按钮的ID检索字符串值。 我已经按如下方式命名了我的字符串值:
<resources>
<string name="app_name">DataApp</string>
<string name="info_title_zalm">Zalm</string>
<string name="info_weight_zalm">1kg</string>
<string name="info_origin_zalm">Atlantische Oceaan</string>
<string name="info_title_haai">Haai</string>
<string name="info_weight_haai">200kg</string>
<string name="info_origin_haai">Atlantische Oceaan, zoet water uitzonderingen</string>
</resources>
因此,字符串具有名称的共享开头,例如info_title_zalm和info_title_haai。 单击haai按钮时,“ haai”字符串将传递到第二个活动,在该活动中,我计划执行诸如“ info_title _” +字符串之类的操作以获取相应的字符串。 但是由于需要将其检索为R.string.info_title_haai,因此无法正常工作。
在Android中有可能这样的事情吗?
使用Android Studio构建Jellybean及更高版本。
我用这个:
int resId = getResources().getIdentifier("info_title_" + string, "string", getPackageName());
String s = getString(resId);
在这里您有更多信息
您可以使用以下某种包装方法(未经测试):
private String getStringResourceByName(String myResourceName) {
String packageName = getPackageName();
int resId = getResources()
.getIdentifier(myResourceName, "string", packageName);
if (resId == 0) {
return myResourceName;
} else {
return getString(resId);
}
}
它将根据与myResourceName
匹配项获取值-然后您可以传递任何您喜欢的内容。
如果只有两个选项,则可以通过意图传递所需的所有资源的ID。
如果此表变大,我认为最好在应用程序中打包一个小型数据库。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.