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

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

今天又赶上了,因此本身总结一下吧 ide

  • 无图无真相
    post

========Activity========this

【List 1】点击跳转到百度
code

-----------------------------------
接口

【List 2】点击跳转到Googleci

-----------------------------------
get

【List 3】点击跳转到微软it

-----------------------------------
io

【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);
    }

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

}
相关文章
相关标签/搜索