机器人的setText使用的getString变量名(android setText with ge

2019-10-17 18:01发布

所以,搜索互联网,我发现并没有太多的例子我需要什么?

这里是我的情况:

试想一下,你有一种资源,是每首歌曲name..so阵列称为歌曲,很多的,IMAGINA你有一个像上一个ListView 200个显示歌曲名称..

当你点击一首歌,应用程序加载的歌词为该歌曲其他活动......但如何做呢?

这里是我做到了。我通过了歌曲的名称这一新的活动,其中装载的歌词是资源...

但当时我有歌词的setText,我有一个问题...我应该做的200例开关? 这听起来很疯狂,所以,我所做的是,我用这首歌应该加载这样的lyrics..so的同一个名字:

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是我resource..it加载罚款的名字。但是,我不能离开它像这样...它应该是一个变量名......这样的: R.string.+productSplit或这样的事情..

我不能无处找到解决办法..

Answer 1:

您可以使用getIdentifier()

int resourceName = getResources().getIdentifier(productSplit, "string", getPackageName());

接着:

txtProduct.setText(getString(resourceName));

不要忘了包裹在一个尝试,渔获物。



文章来源: android setText with getString using variable name