我使用findViewById(id)遇到了一个奇怪的问题。即使资源肯定存在,它也会找不到资源。它是另一个textview旁边的布局中的textview,我可以通过id查找其中一个textview,但另一个显示未找到的资源。这有可能发生什么原因吗?
答案 0 :(得分:269)
确保您实际上并不只是尝试将文本设置为数字并期望它自动转换为字符串。
答案 1 :(得分:36)
尝试清理项目或发布一些代码。
如果您使用Eclipse,有时会无法正确重新生成ID。这需要清理项目并有时刷新。
答案 2 :(得分:26)
异常抛出的消息不是很具描述性。很可能是你试图将 int 值转换为字符串,应用以下更改为我解决了这个问题。
修复前的代码:
itemPrice.setText(foodMenuItems.get(position).getItemPrice());
修复后的代码:
itemPrice.setText(Integer.toString(foodMenuItems.get(position).getItemPrice()));
答案 3 :(得分:14)
只是为了澄清Terra Caines的回答,因为我看到它对人们发生了很多事情;
TextView
和其他文本组件具有2个setText()
函数和1个参数。
其中一个是String
,一个是int。 int
显然属于R.string.myString
等字符串资源,对于那些不知道的人来说,R.exm
始终表示为int
。该字符串用于在那里放一个字符串。
所以例如我想将int x = 1;
放在textView中。做mTextView.setText(x);
将导致textView使用资源函数,因为可能没有id为1的资源,它将抛出异常Resource not found。
如果你想在setText()函数中放入一个int或任何数字,请确保将其转换为String
(x+"")
或(x.toString())
将为您提供帮助。
希望它为人们节省了一些时间。
答案 4 :(得分:10)
textViewCount.setText(someArray.size());
是我的问题。
只需致电toString();
即可解决问题。
Integer size = mSomeArray.size();
textViewReplyCount.setText(size.toString());
答案 5 :(得分:3)
确保您没有以编程方式设置任何不可用的属性。
我遇到了同样的问题,原因是RemoteView.setFloat(id,"setWeight",1.0f);
到LinearLayout
,在4.x之前不支持Android
不幸的是,错误消息对此没有多大帮助。
答案 6 :(得分:0)
在我的情况下,我有int
变量(在“活动”类的顶部 ),并且试图将int变量作为第二个参数传递给Toast.makeText()
( em>向用户展示),我不知道自己是愚蠢的还是android dev平台! :p
答案 7 :(得分:0)
检查属性android:icon="@mipmap/ic_launcher"
是否存在于清单文件的应用程序标记下。
答案 8 :(得分:0)
我的情况是,我试图将带有android:color项的drawable选择器传递给视图背景。这里的问题是您不能使用颜色选择器定义背景颜色,需要一个可绘制的选择器。