我有自定义列表视图,每个项目都有一个图像按钮,我想在点击时立即更改每个图像按钮的图像。自定义列表视图中的每个项目都是名为baiHat {}的对象。 我像这样使用BaiHatAdapter,但它不会立即变形,我必须滚动listview才能看到变化。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater=this.context.getLayoutInflater();
View row=inflater.inflate(this.resource, null);
TextView txtMs = (TextView) row.findViewById(R.id.ms);
TextView txtBh = (TextView) row.findViewById(R.id.bh);
TextView txtCs = (TextView) row.findViewById(R.id.cs);
TextView txtLr = (TextView) row.findViewById(R.id.lr);
ImageButton imglike = (ImageButton) row.findViewById(R.id.imageButton);
final BaiHat baiHat = this.objects.get(position);
txtMs.setText(baiHat.getTxtms());
txtBh.setText(baiHat.getTenBh());
txtCs.setText(baiHat.getTxtcs());
txtLr.setText(baiHat.getTxtLr());
imglike.setImageResource(baiHat.getImg());
imglike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
xulythich(baiHat);
}
});
return row;
}
private void xulythich(BaiHat baiHat) {
if(baiHat.getThich()){
baiHat.setThich(false);
baiHat.setImg(R.drawable.addfav);
}else{
baiHat.setThich(true);
baiHat.setImg(R.drawable.added);
}
}
答案 0 :(得分:2)
创建选择器文件并将其指定为src即可。但作为一种更好的方法,您可以尝试将其更改为togglebutton,因为imageview不是可点击的,而是赋予它选择器源的背景。 它看起来就像任何图像视图,但具有可点击的功能,并可以从选择器文件中更改其背景。