2011-08-11 14 views
0

私は乱数の生成

int random = (int)Math.ceil(Math.random()*100); 
     Toast.makeText(getApplicationContext(), random, Toast.LENGTH_SHORT).show(); 

以下のコードを実行したときに、私は

E/AndroidRuntime( 994): java.lang.RuntimeException: Unable to start activity Co 
    mponentInfo{com.p/com.p.main}: android.content.res.Resources$NotFoundException: 
    String resource ID #0x4b 

このログを取得するには、あなたはエラーが何であるかを教えていただけますか?

+1

これは何をしなければなりません乱数を使う? –

+0

これは関連しています。私は以下の答えの一つから私の解決策を得ました。 – SKB

+0

したがって...乱数には関係しません(定数が使用された可能性があります)。問題を切り分けるために時間をかけてください。それはうまくいくでしょう。 –

答えて

2

使用しようとした文字列に整数から

をキャストに入力する必要があります。

Toast.makeText(getApplicationContext(), Integer.toString(random), Toast.LENGTH_SHORT).show(); 

トースト(あるいはTextViews)入力として整数を受け入れませんがリソースを使用するには、文字列リソースを提供する必要があります。

+0

Thanx a lot ..it worked ... :) – SKB

4

私が理解しているとおり、あなたはランダムID値を生成するようにアプリケーションをプログラミングし、リソース(つまり、適切なデータXMLファイルからテキスト文字列)を要求しました。 0x4b == 75なので、この場合は75のIDを持つ文字列を要求します。これはおそらく定義していないため、クラッシュしている可能性があります。 http://developer.android.com/reference/android/widget/Toast.html#makeText(android.content.Context、int型、int型)

0

あなたが得たエラーは上記のコードが実行される前に、それが発生したとして、上記のコードとは無関係のように見えます:

うん、またAndroidのドキュメントを参照してください。文字列の例外が見つからないため、レイアウトファイルなどでstrings.xmlに作成されていない文字列を使用していないことを確認します。

1

だけでなく、あなたがこの本

int random = (int)Math.ceil(Math.random()*100); 
     Toast.makeText(getApplicationContext(), ""+random, Toast.LENGTH_SHORT).show(); 
1

あなたは乱数だけを表示したい場合:あなただけの次のような何かを配列に入れてあらかじめ定義された文字列のいずれかを表示したい場合は

Toast.makeText(getApplicationContext(), ""+random, Toast.LENGTH_SHORT).show(); 

を:

String[] myRandomTexts = this.getResources().getStringArray(R.array.myStrings); 
int random = (int)Math.ceil(Math.random()*myRandomTexts.size()); 
Toast.makeText(getApplicationContext(), random, Toast.LENGTH_SHORT).show();