1

それで、インターネットを検索すると、私が必要としているものではない多くの例が見つかりました...

これが私の状況です:

と呼ばれる配列であるリソースがあり、各曲名に多くのが含まれていると想像してください..だから、リストビューに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 またはこのようなもの..

私はどこにも解決策を見つけることができません..

4

1 に答える 1

0

使用できますgetIdentifier()

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

その後:

txtProduct.setText(getString(resourceName));

それをtry and catchでラップすることを忘れないでください。

于 2013-02-27T20:28:07.980 に答える