我刚开始使用android而我正在尝试将一个ImageView资源设置为一个id(从另一个活动传递)来自数组。
这是活动代码的相关部分:
Bundle extras = getIntent().getExtras();
int bNumber = extras.getInt("number");
Resources res = getResources();
int[] bLogos = res.getIntArray(R.array.bLogos);
int cImage = bLogos[bNumber];
ImageView imageLayout = (ImageView)findViewById(R.id.image);
imageLayout.setImageResource(cImage);
这是相关的活动布局:
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="0dp"
android:paddingTop="0dp" />
这是阵列:
<array name="bLogos">
<item>@drawable/logo1</item>
<item>@drawable/logo2</item>
<item>@drawable/logo3</item>
</array>
问题是我的setImageResource没有进行仿真,drawable没有加载。 Eclipse并没有告诉我代码中的任何错误。
任何帮助都将不胜感激。
答案 0 :(得分:2)
将Log.e("asd", "cImage: " + cImage);
添加到您的代码中。您可以发现cImage总是 0 。不要使用xml文件来存储图片的ID。它不起作用。更改您的代码如下:
Bundle extras = getIntent().getExtras();
int bNumber = extras.getInt("number");
int[] bLogos = {R.drawable.logo1, R.drawable.logo2, R.drawable.logo3};
int cImage = bLogos[bNumber];
ImageView imageLayout = (ImageView)findViewById(R.id.image);
imageLayout.setImageResource(cImage);