单击图像按钮项自定义列表视图android时更改图像

时间:2016-12-04 23:19:05

标签: java android listview android-imagebutton

我有自定义列表视图,每个项目都有一个图像按钮,我想在点击时立即更改每个图像按钮的图像。自定义列表视图中的每个项目都是名为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);
    }
        }

1 个答案:

答案 0 :(得分:2)

创建选择器文件并将其指定为src即可。但作为一种更好的方法,您可以尝试将其更改为togglebutton,因为imageview不是可点击的,而是赋予它选择器源的背景。 它看起来就像任何图像视图,但具有可点击的功能,并可以从选择器文件中更改其背景。