我在使用LinearLayout
中的相对布局内访问TextView时遇到此问题假设我在文件row.xml中有这些视图
<LinearLayout>
<TextView android:id="@+id/title" />
<RelativeLayout android:id="@+id/a_parent">
<TextView android:id="@+id/a">
</RelativeLayout>
<RelativeLayout android:id="@+id/b_parent">
<TextView android:id="@+id/b">
</RelativeLayout>
</LinearLayout>
现在我想从活动中更改TextViews的值
LayoutInflater li=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout temp=(LinearLayout) li.inflate(R.layout.row, null);
((TextView)temp.findViewById(R.id.title)).setText("This is title");
RelativeLayout rl=(RelativeLayout)temp.findViewById(R.id.a_parent);
((TextView)rl.findViewById(R.id.a)).setText("an this is the content of a");
我可以成功设置id'title'的TextView,但是当接近最后一行时会出现错误。它说错误是由android.content.res.Resources $ NotFoundException引起的:字符串资源ID#0x1
任何人都可以告诉我出了什么问题,如何修复它,以及为什么代码不能像我预期的那样工作?
由于
答案 0 :(得分:3)
您的异常是String的ResourcesNotFoundException。您是否使用getString
设置TextView的值?如果是这样,您确定string.xml文件中存在此字符串吗?如果没有,您是否可以使用R.string.name
而不是R.id.name
来引用您的一个观点?看起来您修改了发布的代码,如果您准确地发布了原始内容以及完整堆栈跟踪,则可能更容易提供帮助。
有时出现资源问题,因为R文件不是新代码的最新版本。我也会尝试重建/清理你的项目,看看是否有帮助。
答案 1 :(得分:1)
通常,当您尝试在Textview中设置整数值时会出现此错误 如下所示:
textview.setText(1);
在这种情况下,android会认为整数值为字符串资源id并检查 字符串strings.xml并抛出Resources $ NotFoundException。 请检查您的代码。如果没有发布必要的代码和logcat输出。
答案 2 :(得分:0)
LinearLayout temp=(LinearLayout) li.inflate(R.layout.row....
在您的XML文件中,LinearLayout未声明“android:id”属性。