它意味着什么如果findViewById找到视图但setText或setImageResource不起作用

时间:2014-05-06 11:06:36

标签: java android listview imageview

这个问题真的让我很生气。我花了2-3天试图通过它。我有一个listview,我遍历每个列表元素,从drawable设置他们的图像。我检查了findViewById是否有效,它确实是因为logcat给了我它的id。当我尝试使用setImageResource或使用Picasso从互联网加载图像时,没有任何事情发生,图像也不会出现。

以下是XML中的ImageView定义:

 <ImageView
 android:id="@+id/Photo"   
 android:layout_height="100dp"
 android:layout_width="100dp"
 android:contentDescription="@string/desc"
  />

这是迭代过程:

for (int i = 0; i < list.getCount(); i++) {


                   v = mAdapter.getView(i,null, list);

                  ImageView photo = (ImageView) v.findViewById(R.id.Photo);

                   photo.setImageResource(R.drawable.abc_ab_bottom_solid_dark_holo);
               }

这看起来非常简单,但由于某些原因它无法正常工作。我试过清理项目,如果这可能很重要。此外,这都是一个片段,我已经在列表中使用了setAdapter。

我真的很感激任何帮助......

1 个答案:

答案 0 :(得分:0)

适配器getView()为您提供了一个新视图。它与屏幕上显示的不一样,更改它没有任何可见的结果。

setImageResource()代码移动到适配器getView()本身,使其在列表视图请求的相同视图上运行。