为了设置 ImageView 动态我采用 ImageView[] 数组。如果我尝试从我的数组中处理 ImageView,则活动会崩溃。我的错误在哪里?
活动主.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<ImageView
android:id="@+id/iv1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart" />
<ImageView
android:id="@+id/iv2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart" />
<ImageView
android:id="@+id/iv3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitStart" />
</TableRow>
</RelativeLayout>
MainActivity.java:
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView iv1, iv2, iv3;
private ImageView[] IMGS = { iv1, iv3, iv3 };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv1 = (ImageView) findViewById(R.id.iv1);
iv2 = (ImageView) findViewById(R.id.iv2);
iv3 = (ImageView) findViewById(R.id.iv3);
setImages();
}
private void setImages() {
// A) this works
iv1.setImageResource(R.drawable.ic_launcher);
iv2.setImageResource(R.drawable.ic_launcher);
iv3.setImageResource(R.drawable.ic_launcher);
// B) at the beginning i need to set all images in a row
for (ImageView img : IMGS) {
img.setImageResource(R.drawable.ic_launcher);
}
// C) later on i need to set an particular image
IMGS[1].setImageResource(R.drawable.ic_launcher);
}
}
看看 setImages()。A 工作,B 和 C 使我的活动崩溃。我的错误在哪里?
TIA托拜厄斯