上篇文章总结了如何自定义listview的显示内容,然而listview不能只是提供显示功能,还必须能够点击它显示一些东西;
listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { Fruit fruit = fruitList.get(position); } });
我们使用了 setOnItemClickListener()方法来为 ListView 注册了一个监听器,当用户点击了 ListView 中的任何一个子项时就会回调 onItemClick()方法,在这个方法中可以通过 position 参数判断出用户点击的是哪一个子项。
想像我们在用淘宝购物,点击列表我们应该得到另一个页面,下面是我写的另一个例子的代码
lView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view,int position, long id) { // TODO Auto-generated method stub Article article = articleList.get(position); Intent intent = new Intent(NewsActivity.this,ArticleActivity.class); intent.putExtra("url", article.getUrl()); startActivity(intent); } });
这个例子我写的一个新闻app,点击文章内容可以启动另一个活动,并通过 putExtra()方法传递了一个url。注意这里 putExtra()方法接收两个参数,第一个参数是键,用于后面从 Intent中取值,第二个参数才是真正要传递的数据。在另一个活动中,用getintent方法获得启动这个活动的intent,调用这个intent对象的getstringextra方法。代码如下
Intent intent = getIntent(); String urlString = intent.getStringExtra("url");//get的是键值