【Android】ListView的点击事件的实现

不是什么特别难的复杂的代码,平常“度娘”给出的答案却也不是那么的尽人意

今天又遇上了,所以自己总结一下吧 

  • 无图无真相

========Activity========

【List 1】点击跳转到百度

-----------------------------------

【List 2】点击跳转到Google

-----------------------------------

【List 3】点击跳转到微软

-----------------------------------

【List 4】点击跳转到阿里巴巴

... ...

... ...

========Activity========

  • 功能点

点击对应的item发起对应的跳转动作


  • 干货

    Activity端

public class CircleMsgAcitvity extends BaseActivity 
    //【1】包含接口
    implements OnItemClickListener {
    ... ...
    ... ...

    //【2】实现接口
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
            long arg3) {
        // 从Adapter中获得点击条目中数据源包含的帖子id
        //★★★从Adapter中获得被点击的item的数据实体,并取出来赋值给postId 
        String postId = msgAdapter.getItem(position).getPostId();
        // 根据postId启动对应的【帖子详情】
        switch2DetailView(postId);
    }


    //【3】想要的动作:根据postId进行跳转
    //postId可以是{百度地址,Google地址...}
    private void switch2DetailView(String postId) {
        Intent intent = new Intent(this, CircleActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("postId", postId);
        intent.putExtras(bundle);
        startActivity(intent);
    }
    
    //【4】接口绑定
    private void initView() {
        bkBtn = (Button) findViewById(R.id.btn_back);
        bkBtn.setOnClickListener(this);
        // 绑定数据源
        msgList = (MyListView) findViewById(R.id.circle_msg_list);
        msgAdapter = new CircleMsgAdapter(this);
        msgList.setAdapter(msgAdapter);
        //接口绑定
        msgList.setOnItemClickListener(this);
    }

}

    

    Adapter端

public class CircleMsgAdapter extends BaseAdapter {
... ...
... ...
    //【5】搭一个桥:让Activity可以取到Adapter中被点击item中的数据实体
    @Override
    //public Object getItem(int position) {
    //★★★ 关键的一步,修改BaseAdapter中getItem返回的类型
    //【Object】---》【CircleMsgItemInfo 】
    public CircleMsgItemInfo getItem(int position) {
        return mInfos.get(position);
    }

... ...
... ...

}






转载于:https://my.oschina.net/u/2273965/blog/356786

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值