在list_item.xml文件中,我有一个ImageView和一个TextView。 ImageView的代码为
<ImageView
android:id="@+id/play"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/play"/>
在主要活动中(main_activity.java与activity_main.xml连接,它有一个ListView),当用户使用setAdapter从列表集中点击音乐(onItemClick)时,音乐播放效果很好。现在我想改变这个ImageView的图像,当音乐开始播放的时候。所以我插入了下面给出的代码:
View inflatedView = getLayoutInflater().inflate(R.layout.list_item, null);
ImageView imgchange = (ImageView)inflatedView.findViewById(R.id.play);
imgchange.setImageResource(R.drawable.pause);
但它不起作用。我也试过
android:src="@drawable/imagename"
我也试过
imgchange.setBackgroundResource(R.drawable.pause);
寻找有价值的建议,我该怎么办?或错误在哪里?
答案 0 :(得分:0)
我过去遇到过类似的问题,这是因为布局没有自行更新。按照此处android redraw layout programmatically
所述更改图像后,尝试刷新视图的布局答案 1 :(得分:0)
我会使用新的ContextCompat
代替setBackgroundResource()
,如下所示:
imageView.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.pause));
您可以将Activity
作为Context
传递。如果这不起作用,您还可以尝试使视图无效,这将强制重绘。