随机数生成

时间:2011-08-11 06:30:04

标签: android string random

当我执行下面显示的代码时

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

你能告诉我这是什么错误吗?

5 个答案:

答案 0 :(得分:4)

据我了解:您已将应用程序编程为生成随机ID值,然后请求资源(即来自相应数据XML文件的文本字符串)。除非你拥有足够数量的资源,否则实际工作的可能性很小:0x4b == 75,所以在这种情况下它会请求id为75的字符串,你可能没有定义,因此崩溃。

是的,另请参阅Android文档:http://developer.android.com/reference/android/widget/Toast.html#makeText(android.content.Context,int,int)

答案 1 :(得分:2)

使用此:

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

Toast(甚至TextViews)不接受整数作为输入资源,你必须提供字符串资源。

答案 2 :(得分:1)

你需要输入从整数到字符串的转换

试试这个

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

答案 3 :(得分: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();

答案 4 :(得分:0)

您获得的错误似乎与上面的代码无关,因为它是在上面的代码运行之前导致的。由于它是字符串的资源未找到异常,我会检查您的布局文件,以确保您没有使用未在strings.xml中创建的字符串。