所以,在网上搜索我发现很多不是我需要的例子......
以下是我的情况:
想象一下,你有一个名为歌曲的数组资源,以及每个歌曲名称的许多内容。所以,想象你在列表视图中显示了200首歌曲名称..
当您点击一首歌时,该应用会加载另一个包含该歌曲歌词的活动... 但你怎么做到的?
我是这样做的..我把这首歌的名字传给了这个新活动,加载了歌词所在的资源......
但是,当我必须用歌词setText时,我遇到了一个问题......我应该用200个案例进行切换吗?这听起来很疯狂,所以,我做的是,我在歌词中使用了同一首歌的名字。所以它应该像这样加载:
TextView txtProduct = (TextView) findViewById(R.id.product_label);
Intent i = getIntent();
// getting attached intent data
String[] musicas = getResources().getStringArray(R.array.botafogo_songs);
// this here is where it brings the name of the music to the activity
String product = i.getStringExtra("product");
// displaying selected product name
if (Arrays.asList(musicas).contains(product)) {
//just formating so they have the same name.
String productSplit = product.split("- ")[1];
productSplit.replace(" ", "");
txtProduct.setText(getString(R.string.AbreAlas));
}else{
txtProduct.setText("não contem");
}
好的,AbreAlas是我资源的名称..正常加载..
但是,我不能这样离开...它应该是一个变量名称......
像:R.string.+productSplit
或类似的东西..
我无法找到解决方案..
答案 0 :(得分:0)
您可以使用getIdentifier()
:
int resourceName = getResources().getIdentifier(productSplit, "string", getPackageName());
然后:
txtProduct.setText(getString(resourceName));
不要忘记将其包裹起来并尝试捕获。