当我执行下面显示的代码时
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
你能告诉我这是什么错误吗?
答案 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中创建的字符串。