我有一个Key: tag1, Value: text1
Key: tag2, Value: text2
,其中包含每个单元格中的GridLayout
。现在,我想更改LinearLayout
内的imageViews
,使每个代码在代码中都有不同的图片,而不是linearlayouts
,以便动态更改。我不知道该怎么做。
如果我这样做:
XML
我只能更改第一张图片,而不能更改其他图片。
这是mainLayout
public class Testextends AppCompatActivity
{
ImageView item0,item1,item2,item3,item4,item5,item6,item7,item8,item9;
TextView itemDesc0, itemDesc1;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.inventorylayout);
item0 = (ImageView)findViewById(R.id.imageViewItem);
itemDesc0 = (TextView)findViewById(R.id.itemDesc);
item0.setImageResource(R.drawable.test);
itemDesc0.setText("test1");
item1 = (ImageView)findViewById(R.id.item01);
itemDesc1 = (TextView)findViewById(R.id.itemDesc);
item1.setImageResource(R.drawable.test);
itemDesc1.setText("test2");
}
}
这是itemLayout
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:columnCount="3"
android:rowCount="3"
android:gravity="center"
android:useDefaultMargins="true"
android:layout_gravity="center_horizontal">
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item01"
android:layout_row="0"
android:layout_column="0" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item02"
android:layout_row="0"
android:layout_column="1" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item03"
android:layout_row="0"
android:layout_column="2" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item01"
android:layout_row="1"
android:layout_column="0" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item02"
android:layout_row="1"
android:layout_column="1" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item03"
android:layout_row="1"
android:layout_column="2" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item01"
android:layout_row="2"
android:layout_column="0" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item02"
android:layout_row="2"
android:layout_column="1" />
<include layout="@layout/itemlayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item03"
android:layout_row="2"
android:layout_column="2" />
</GridLayout>
</LinearLayout>
答案 0 :(得分:1)
首先使用findViewByid获取对包含的View的引用。然后你可以在它的子视图上调用findViewById来获取对布局内View的引用。因此,设置第一个包含布局的视图:
View myLayout1 = findViewById( R.id.item01 );
item0 = (ImageView)myLayout1.findViewById(R.id.imageViewItem);
itemDesc0 = (TextView)myLayout1.findViewById(R.id.itemDesc);
item0.setImageResource(R.drawable.test);
itemDesc0.setText("test1");
用于设置第二个包含布局的视图:
View myLayout2 = findViewById( R.id.item02 );
item1 = (ImageView)myLayout2.findViewById(R.id.imageViewItem);
itemDesc1 = (TextView)myLayout2.findViewById(R.id.itemDesc);
item1.setImageResource(R.drawable.test);
itemDesc1.setText("test2");
依旧......