Android Scrollview+Listview 实现不同条目点赞并计数功能及原理分析(3)

过了有点久,还好上次把代码发上去了,不会影响。现在我们来解决最后一个问题 点赞后计数改变这个问题难在哪里呢,就是我们需要在自定义的adapter中设置每个item长什么样子,每个子控件的clickListener也需要在这里设置,但是有时候点击事件需要改变外层的页面属性。比如我在item中有一个button,点击它,整个屏幕就暗了,显然需要在外界得到这个button的click事件。解决这个问
摘要由CSDN通过智能技术生成

过了有点久,还好上次把代码发上去了,不会影响。现在我们来解决最后一个问题

点赞后计数改变

这个问题难在哪里呢,就是我们需要在自定义的adapter中设置每个item长什么样子,每个子控件的clickListener也需要在这里设置,但是有时候点击事件需要改变外层的页面属性。比如我在item中有一个button,点击它,整个屏幕就暗了,显然需要在外界得到这个button的click事件。解决这个问题有几种方法,下面一个个说;

  1. 使用回调函数(也是代码中使用的)

在adapter中设置一个interface,然后在click中调用interface的方法,外层的代码需要实现这个interface,这样实际button的click的具体实现方法就在外层去做了。
item实现代码:

public class SampleItem extends BaseAdapter implements View.OnClickListener{
   
    private Context context;
    private Callback callback;
    private List<ItemMsg> listMsg;


    public List<ItemMsg> getListMsg() {
        return listMsg;
    }

    public void setListMsg(List<ItemMsg> listMsg) {
        this.listMsg = listMsg;
    }

    public SampleItem(Context context,Callback callback,List<ItemMsg> list){
        this.context = context;
        this.callback = callback;
        this.listMsg = list;
    }

    public interface Callback{
   
        public void myClick(View view);
    }
    @Override
    public int getCount() {
        return listMsg.size();
    }

    @Override
    public Object getItem(int i) {
        return listMsg.get(i);
    }

    @Override
    public long getItemId(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值