不是什么特别难的复杂的代码,日常“度娘”给出的答案却也不是那么的尽人意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); } ... ... ... ... }