2014-10-09 131 views
0

我刚刚开始使用android,我试图将一个ImageView资源设置为一个数组(从另一个活动传递)。在Android中设置ImageView中的ImageView

这是活动的代码的相关部分:

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不会告诉我代码中有任何错误。

任何帮助,将不胜感激。

回答

2

Log.e("asd", "cImage: " + cImage);添加到您的代码。你可以发现cImage始终是。不要使用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); 
+0

完美的工作,谢谢你。 – Trybadisch 2014-10-10 11:31:42