2011-05-24 25 views
2

これは本当のばかげた質問ですが、それを動作させることはできません。私は検索オプションを使用しましたが、アンドロイドのための私の答えを見つけることができませんでした。文字列と整数を変数に連結する方法

私は、次のことをしたいと思っ何か:

解像度で

/のstrings.xml私が持っている複数の文字列

<string name="good0">blablabla</string> 
<string name="good1">balablabla2</string> 
etc 

私は何かが起こるとき、それらの中にランダムにこれらの文字列を表示したいです:

Toast.makeText(this,R.string.good+(Math.random()*10), Toast.LENGTH_LONG).show(); 

これは機能しません。

ありがとうございました!

+0

代わりにStringArrayを使用してみませんか?それをする方法はありません! –

+0

私はStringArrayのために行くだろう、私はそれがケースを使用するよりも良い解決策だと思う。ご回答有難うございます! – patrick

答えて

5

String Arrayを使用してください。

strings.xmlに:あなたは、複数の文字列値または整数値を持っていて、その後、単一の文字列に保存する場合は

String[] messages = getResources().getStringArray(R.array.messages); 
Random r = new Random(); 
String message = messages[r.nextInt(messages.length)]; 
Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 
2

これはできません。

ブロックswitchを使用する必要があります。

String myString; 

switch(Math.random() * 10) { 
    case 0: 
     myString = getString(R.string.good1); 
     break; 
} 

Toast.makeText(this, myString, Toast.LENGTH_LONG).show(); 
+0

これは不可能ではないと予想していませんでした。しかし、お返事いただきありがとうございます! – patrick

+0

R.string.good1はintをStringに置きます。これは適切な 'getString()'呼び出しを使わなければ動作しません。 –

+0

私はそれが良いアイデアだとは思わない、espcially多くの文字列があるとき。 –

2

R.string.goodそれがリソースを指すためintあります。このintは、XMLファイル内の文字列を識別します。 Androidはリソース識別子としてgetString()を提供しています。

Android Docs on String Resources

あなたは通常通り連結、その後、リソースファイルのうち、このように文字列を取得する必要があります。

0

<resources> 
    <string-array name="messages"> 
     <item>blablabla</item> 
     <item>blablabla</item> 
    </string-array> 
</resources> 

次に、コードであなたのようなものを持っています文字列ビルダーはこの 型の操作に最適です。たとえば、文字列配列があり、 を1つの文字列に格納してからこの文字列を表示したい場合は、 メソッドを使用します。それは百パーセントに動作しますし、それはあまり適し 問題のこのタイプのためである。**ここで私は、単一の文字列に電話列を割り当てていますし、 が、私はそれなどが表示されます。この場合、

String my_str=null; 
StringBuilder bldr=new StringBuilder(); 
for(int j=0;j<5;j++) 
    bldr.append(phonearray[j]).append(","); 
my_str=bldr.toString(); 

..