質問: 3; ``` ### 試したコード 結果、画面自体が表示されないか、数値が表示されてしまうかでした。 ``` ((TextView) findViewById(R.id.ex)).setText(R.string.ex_exs + String.valueOf(num) + R.string.exe); ``` よろしくお願いします。
回答: R.string.ex_exsなどが指すものはあくまで**int型の数値**です。 TextView.setTextメソッドでint型の引数が渡された場合、その数値を頼りにリソースを探して文字列を取得し、TextViewにセットするわけです。 繰り返しますが、ただの数値なので、文字列と連結したらその数値そのまま文字列化されます。 これを避けるためには、自分で数値からリソースの文字列を引っ張ってこなければいけません。 ActivityからResourcesオブジェクトを取得して、これに数値を渡すことで文字列を取得します。 質問のコードを、当初の意図通りに文字列表示させようと思ったら、以下のようになります。 ``` //Activity内において Resources res = getResources(); ((TextView) findViewById(R.id.ex)).setText(res.getString(R.string.ex_exs) + String.valueOf(num) + res.getString(R.string.exe)); ```