Java 单击imagebutton项目自定义列表视图时更改图像
我有一个自定义列表视图,每个项目都有一个imagebutton,我想在单击时立即更改每个imagebutton的图像。自定义listview中的每个项都是一个名为baiHat{}的对象。 我像这样使用BaiHatAdapter,但它不会立即改变,我必须滚动listview以查看更改Java 单击imagebutton项目自定义列表视图时更改图像,java,android,listview,android-imagebutton,Java,Android,Listview,Android Imagebutton,我有一个自定义列表视图,每个项目都有一个imagebutton,我想在单击时立即更改每个imagebutton的图像。自定义listview中的每个项都是一个名为baiHat{}的对象。 我像这样使用BaiHatAdapter,但它不会立即改变,我必须滚动listview以查看更改 @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflate
@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);
}
}
创建一个选择器文件,并将其指定为src。但作为一种更好的方法,您可以尝试将其更改为togglebutton,因为imageview并不意味着可以单击,而是提供选择器源的背景。
它看起来与任何imageview一样,但具有可单击和从选择器文件更改其背景的功能