java - 单击图像按钮项目自定义 ListView android时更改图像

标签 java android listview android-imagebutton

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

最佳答案

创建一个选择器 文件并将其指定为 src 即可。但作为一种更好的方法,您可以尝试将其更改为 togglebutton,因为 imageview 并不意味着可点击并为其提供选择器源的背景。 它看起来就像任何 ImageView ,但具有可点击和从选择器文件更改其背景的能力。

关于java - 单击图像按钮项目自定义 ListView android时更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40964899/

相关文章:

java - 我的 ListView 不显示我的数据,但显示我的包名称

android - 我的 ListView 在旋转屏幕时不会保存;使用 Parcelable 接口(interface)和 onSaveInstanceState

java - 当我编写代码以通过ListView {在content_main.xml}中创建联系人列表(如联系人 View )时发生错误

Android Studio 添加图像 Assets 不起作用

java - jOOQ - 插入多个数据并获取生成的 ID 的一般方法

java - 没有可用类型的合格 bean : expected at least 1 bean which qualifies as autowire candidate

java - 查询无法通过 HQL 执行

android - 如何在android中访问本地服务器上的文件?

java - 使用字符串进行动态转换

java - 添加mvc资源抛出500错误(Spring/Tomcat/Maven/Hibernate)