我在使用findViewById(id)时遇到了一个奇怪的问题。即使资源肯定存在,它也返回找不到资源。它是布局中的一个textview,紧挨另一个textview,我可以通过id找到其中一个textview,但另一个显示未找到资源。有什么可能会发生这种情况吗?
Answers:
尝试清理您的项目或发布一些代码。
如果您正在使用Eclipse,则有时无法正确地重新生成ID。这需要清理项目,有时需要刷新。
确保您不是真的只是尝试将文本设置为数字,并期望它会自动转换为字符串。
TextView参考地址,从而产生这些错误。因此,您必须确保不要在TextView的setText()方法中输入数字(或整数)。
myTextView.setText(myInt + "");自己的@androider 。但是据THIS看来,这myTextView.setText(Integer.toString(myInt));是最有效的方法。
异常引发的消息不是很具有描述性。在您尝试将int值转换为String的情况下,很有可能应用以下更改为我解决了此问题。
修复之前的代码:
itemPrice.setText(foodMenuItems.get(position).getItemPrice());
修复后的代码:
itemPrice.setText(Integer.toString(foodMenuItems.get(position).getItemPrice()));
只是为了弄清Terra Caines的答案,因为我看到它对人们影响很大。
TextView和其他文本组件,具有2个setText()功能和1个参数。
其中一个带有a String,一个带有int。该int显然是一个字符串资源,例如R.string.myString-这,对那些谁不知道,R.exm总是被表示为int。字符串用于将字符串放在此处。
因此,例如,我想将intx = 1;放在textView中。这样做mTextView.setText(x);
将导致textView使用资源功能,并且由于可能没有ID为1的资源,它将引发异常“找不到资源”。如果要在setText()函数中放入int或任何数字,请确保将其转换为String (x+"")或(x.toString())将为您解决问题。
希望它可以为人们节省一些时间。
确保您没有以编程方式设置任何不可用的属性。我遇到了同样的问题,原因是aRemoteView.setFloat(id,"setWeight",1.0f);到a LinearLayout,这在4.x之前的Android上不受支持,不幸的是,错误消息对此没有很大帮助。
就我而言,我有一个int变量(在Activity类的顶部),并且我试图将该int变量作为第二个参数传递给Toast.makeText()(向用户显示),我不知道自己是愚蠢的还是android dev platform是!:p
检查属性是否android:icon="@mipmap/ic_launcher"存在于清单文件的application标记下。
我的情况下,我试图将具有项目android:color的drawable选择器传递给视图背景。这里的问题是您不能使用颜色选择器定义背景颜色,需要一个可绘制的选择器。