一开始有人说使用HashMap先把值存进去,然后再取,这样的方法思想简单,就是用起来有点复杂。
后来一想一定有相应的点击事件,果不其然

ListView list = (ListView) findViewById(R.id.listview);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
      Object listItem = list.getItemAtPosition(position);
 

这个listItem就是得到的点击对象,但是无法调用setOnClickListener事件,为什么呢

进一步研究getItemAtPosition方法的定义

public Object getItemAtPosition(int position) {
        T adapter = getAdapter();
        return (adapter == null || position < 0) ? null : adapter.getItem(position);
    public long getItemIdAtPosition(int position) {
        T adapter = getAdapter();
        return (adapter == null || position < 0) ? INVALID_ROW_ID : adapter.getItemId(position);
 

发现最终还是调用getItem方法,这个方法是在继承BaseAdapter的时候重写的方法

@Override
    public Object getItem(int position) {
       return null;
 

可以看出这个方法返回的是一个空对象,当然就没有点击事件了。但是想触发点击事件怎么办呢,返回一个当前的点击对象?怎么做呢?

// parent 相当于listview Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X - -
// view 是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件
// position 是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)
// id 是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的

不妨笔锋一转,回到源头上来。如果只想识别特殊位置的对象,不如做一个判断,直接通过position判断那些固定位置的List。

比如说第0个位置上的:

if(position == 0){
//write your logic
}else{
//write your logic
 

经过实践证实:通过修改getItem返回的对象就可以获得当前点击对象
这里贴出模板代码:

list_friend.setOnItemClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
                if(position == 0){
                   //write your code
                }else{
                    view.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Object_Item = your_Adapter.getItem(position);
 @Override
    public Object getItem(int position) {
       return datalist.get(position);
 

your_Adapter和datalist替换成你的适配器和数据列表,Object_Item是你返回的对象也就是datalist里面的泛型对象

Android中我们要如何获取ListView选中的值呢? 我们举个例子,假如我们已经获得了手机中保存的联系人姓名和电话号码,并把它们显示在了一个Android ListView中,现在要实现的功能是当点击选中时直接拨号,那么如何取得此时Android ListView中的号码? 要显示联系人姓名和电话号码,那你现在肯定已经在listview 的item里面放了两个控件吧,假如是textview吧,那你就首先要给listview添加一个OnItemClickListener来监听你点击了那个item,在这个OnItemClickListener里面有个onItemClick方法,这个方法 1. 在做`Win32/WTL`开发时,`CListViewCtrl`控件是常用的表格控件。有时候自绘`listview`时,需要在单元格上绘制小图标,并且小图标能响应鼠标点击的操作。 那么如何实现判断是否点击了小图标呢? 下面我就总结一下获取item的方法: 首先我们需要设置item点击监听事件: ListView listuser = (ListView) findViewById(R.id.listuser);listuser.setOnItemClickListener(new AdapterView.OnItemC 列表(listview)的点击事件绑定,演示代码lv = (ListView)findViewById(R.id.listView);lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override//parent 代表listView View 代表 被点击的列表 position 代表第几个 id 代表列表编... 看了很多listview的长按事件,但几乎都是只给出弹出菜单的代码,没有给出选中的某个的代码,我贴个全的吧,免得摸索麻烦 listview在父窗口先注册一个长按弹出菜单registerReceiver=》设置一个长按的listener,保存好选中item数据=》onCreateContextMenu添加菜单=》onContextItemSelected菜单响应处理; 就这么简单。 弄了半天 ,终于解决了。下面分享下我的解决办法,希望可以帮到别人。不过上面 @chuyao 也提供了个办法,大家可以看看。还是直接贴代码吧...public void onItemCheckedStateChanged(android.view.ActionMode mode, int position, long id, boolean checked) {adapter.notifyDataS... ListView的功能:1.将数据填充到布局;2.处理用户的选择点击等操作。列表的显示需要三个元素:1.ListVeiw:用来展示列表的View;2.适配器: 用来把数据映射到ListView上的中介;3.数据源: 具体的将被映射的字符串,图片,或者基本组件。关于适配器适配器是一个连接数据和AdapterView的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterVi... 1  listadview 中adapter 中有四个函数  getconut ()  getitemid()  getitem()getview() 这个是最重要的吧; getcount()这个是获取这个listview 的总长度 就是会有多少个item getitemid () 这个就是获取那个条目布局在屏幕中的位置 下面是各部分代码 layout.xml(新建layout时直接把Root Tag设成ListView也可) <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android... ListView是比较常用的控件,其存在的最根本的原因在于它的高效,ListView通过对象的复用从而减少内存的消耗,也减少了对象的创建从而也减少的cpu的消耗(在Androidk中创建View对象经常伴随着解析xml)。ListView的本质是一张bitmap(当然所有的控件文字等在屏幕上看到的最终都会变成bitmap),ListView会按照需求,根据Adapter提供的信息把需要的Item画出来显示在屏幕上,当屏幕滚动的时候会重新计算Item的位置并绘制出新的bitmap显示在屏幕上。这样听起来感觉可 1.自定义编辑弹框update.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" & 需要看ListView基础用法的朋友请看,Android ListView基础用法 现在大家根据上一篇博文已经可以呈现出一个列表了,但是在实际使用列表的过程中经常会在列表中用到一些按钮、选择框、下拉菜单等功能并获取用户所选择的值。这样的需求在上一篇的用法中已经无法满足,所以博主今天用ListView中嵌套spinner下拉选择列表并获取spin...