• 为listview的item中的元素设置onclick事件


    表达能力比较差,所以现在解释一下标题的意思:
    listview的列表项,点击的时候触发的是itemOnClick事件,点击后转向到A页;那么,假如在子项中有一个连接是想转到B页,我们该怎么办呢。这样能明白了吧,好,现在我说一下解决的办法:
    有两种办法,一种是重写adapter,一种是在你的子项中的元素中设置onclick事件(注意,是在xml中设置onclick元素)
    我只做了第一种方法,演示如下:
    我们继承adapter的基类,然后重写getView

    @SuppressWarnings("unchecked")
    public View getView(int position, View convertView, ViewGroup parent) {
    
    
    convertView = mInflater.inflate(this.resource, null);
    
    Map item = data.get(position);
    
    int count = to.length;
    
    for (int i = 0; i < count; i++) {
    
    View v = convertView.findViewById(to);
    
    
    bindView(v, item, from);
    
    }
    //下面的几行是亮点
    
    View avatar = convertView.findViewById(R.id.row_avatar);//获取你要点击的组件
    
    if (null != avatar) {//判断一下,省得出现什么错误
    
    avatar.setTag(item);//我们可以利用setTag来存储数据,传给触发事件
    
    avatar.setOnClickListener(avatarClickListener);//触发事件代码往下看
    
    }
    
    return convertView;
    
    }
    
    
    //这个就是触发的事件,根据自己的要求写
    private OnClickListener avatarClickListener = new OnClickListener() {
    
    
    @SuppressWarnings("unchecked")
    
    public void onClick(View v) {
    
    Map item = (Map) v.getTag();//还记得上面的那个setTag么?我们在这里给丫取出来
    
    Intent mIntent = new Intent(AdapterWithHashMap.this.context,
    
    MySelf.class);
    
    mIntent.putExtra("user_id", item.get("uid").toString());
    
    
    AdapterWithHashMap.this.context.startActivity(mIntent);
    
    }
    
    };
  • 相关阅读:
    manjaro开机出现grub 解决办法
    goquery 解析不了noscript
    同步服务器时间
    phpStorm中使用xdebug工具调试docker容器中的程序
    Goutte 获取http response
    在微信浏览器里使用js或jquery实现页面重新刷新
    Node Sass does not yet support your current environment
    微信支付服务商模式
    PHP获取月末时间
    JavaScript DOM 对象
  • 原文地址:https://www.cnblogs.com/niray/p/3815044.html
Copyright © 2020-2023  润新知