我正在尝试通过以下代码为我的布局中的每个ImageView设置一个新图像。它不会产生任何错误。但ImageViews的图片不会改变。
RelativeLayout rl = (RelativeLayout)getLayoutInflater().inflate(R.layout.activity_desert, null);
int count = rl.getChildCount();
Log.d("COUNT", "***************************** Child count = " + count);
for (int i = 0; i < count ; ++i){
ImageView im = (ImageView)rl.getChildAt(i);
im.setImageDrawable(getResources().getDrawable(R.drawable.kunefem));
}
这是我的xml文件内容: activity_desert.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Desserts"
tools:ignore="MergeRootFrame" >
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image0"
android:src="@drawable/dessert2"
android:layout_marginLeft="305dp"
android:layout_marginTop="65dp"
android:layout_alignParentLeft="true" />
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image1"
android:layout_marginLeft="35dp"
android:src="@drawable/dessert2"
android:longClickable="true"
android:layout_alignTop="@+id/image0"
android:layout_toRightOf="@+id/image0" />
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image2"
android:layout_marginTop="47dp"
android:src="@drawable/dessert2"
android:layout_below="@+id/image0"
android:layout_alignLeft="@+id/image0" />
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image3"
android:layout_marginLeft="46dp"
android:src="@drawable/dessert2"
android:layout_alignTop="@+id/image1"
android:layout_toRightOf="@+id/image1"
android:layout_alignParentStart="false" />
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image4"
android:src="@drawable/dessert2"
android:layout_alignTop="@+id/image2"
android:layout_alignLeft="@+id/image1" />
<ImageView
android:layout_width="180dp"
android:layout_height="180dp"
android:id="@+id/image5"
android:src="@drawable/dessert2"
android:layout_alignTop="@+id/image4"
android:layout_alignLeft="@+id/image3" />
我很沮丧!请帮忙!
答案 0 :(得分:2)
请尝试以下代码:
RelativeLayout rl = (RelativeLayout) findViewById(R.id.container);
然后尝试访问该对象的子视图。
编辑:显然这很有用,我很高兴这回答了你的问题!
我想补充一点为什么这有效的解释。在实际从任何layout.xml文件中获取View对象时,必须使用findViewById方法。 LayoutInflater将布局XML文件实例化为其对应的视图对象。很高兴这帮助了你!