1

その他のコード - ここで作成されたR.string.c#### - c.####文字列は、setText として実行する定義済みの文字列です。

int Q1 = question1.getmCounter();
int Q2 = question2.getmCounter();
int Q3 = question3.getmCounter();
int Q4 = question4.getmCounter();

int qTotal = Q1 + Q2 + Q3 + Q4;
String Test5 = "R.string.c" + qTotal;

これが、フィードしたい「文字列」を取得する方法です。

    textOut = (TextView) findViewById(R.id.ChmpNametxt);
    textOut.setText(Test5);

餌付けしたいところです。

4

1 に答える 1

2

「getIdentifier」メソッドを使用して、リソースにアクセスできます。パッケージの任意のリソースにアクセスできます。

getResources().getIdentifier("c1123", "string", this.class.getPackageName());

最初の引数には任意の変数を渡すことができます。これは文字列の名前に対応します。2 番目の引数は、検索対象のリソース (文字列、ドローアブル、レイアウト .....) を指定します。3 番目の引数は、アプリケーションのパッケージ名です。どの「R」を使用するかを指定します。あなたの場合、アプリケーションに含まれるリソース (「R」) の内部を調べたいとします。

編集: このメソッドは、探しているリソースの ID に対応する int を返します (例: R.string.c1123)。

Edit2: この int は、setText 関数のパラメーターとして使用する必要があります。

したがって、完全なコードは次のようになります。

int resId = getResources().getIdentifier("c" + qTotal, "string", this.class.getPackageName());
textOut.setText(resId);
于 2012-05-07T21:52:47.417 に答える