如何在Android中自定义列表视图中设置图像?

时间:2011-09-02 07:39:44

标签: android android-layout

我正在开发一个应用程序,在这个应用程序中,我必须根据我在listview中解析XML响应后收到的值来显示评级。我使用自定义适配器实现了它,并在getView()方法中显示图像,如:

String rating = Constants.menuRatingList.get(position);

if (rating.equals("1")) {
  rateImg1.setImageResource(R.drawable.stary);                      
}

问题是,当我向下滚动到最后一个项目并再次向上移动时,它正在重新绘制列表行。

有人请建议我停止重新绘制列表行并永久设置图像值。

1 个答案:

答案 0 :(得分:0)

如何创建rateImg1变量? 也许你应该从传递给getView()方法的视图中获取它? 像这样:

public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
view = LayoutInflater.from(ctx).inflate(R.layout.my_layout, parent, false);
}
((ImageView) view.findViewById(R.id.my_image)).setImageResource(R.drawable.some_drawable);
return view;
}

你也可以实现getViewTypeCount()和getItemViewType(),并在上面的方法中检查它们,如果已经设置了它,不要重绘相同的图像。