ListView有多个列,在什么事件中判断点击的是哪一列?
是在onListItemClick(ListView l, View v, int position, long id)中吗?如果是,如何判断是哪一列?
或是在自定义的适配器的getView(int position, View convertView, ViewGroup parent)中的列控件监听器setOnClickListener的onClick(View v)事件处理中实现吗?如果是,那又如何获取点击的所在行?
不知我的问题描述清楚没有?

解决方案 »

  1.   

    问题1. onListItemClick 是在这里, 它里面不是有个position数组吗,可以判断
    问题2. 你的方法肯定可以实现,既然已经有每一行的所属的View了,基本上可以随便折腾了,要判断所在行同样可参考position参数,
    需要注意的是: 如果想获取指定行的数据最好不要依赖position,最好自定义数据集合去操作,否则你会取不到你想要的值
      

  2.   

    那个position你打印出来不就看出来了嘛!
      

  3.   

    listview就是每行显示的,为什么会有多个列? 自己实现列的话,在实现过程中留个列ID待取就好了
      

  4.   

        各位朋友,可能我的表述不清。我的意思是ListView的每一行中有多个View,如V1、V2、V3,我要实现的是点击V3时执行一系列操作,而点击V1、V2不做任何操作。问题是在onListItemClick(ListView l, View v, int position, long id)中,position是标记某行的行号,v好象是标记该行的控件组而不是该行的被点击的控件,我如何判断点击的是V3而不是V1和V2?
        如果在自定义的适配器的getView(int position, View convertView, ViewGroup parent)中的列控件监听器setOnClickListener的onClick(View v)事件处理中实现,虽然这里的v是所点击的控件,但在onClick中判断控件所在行引用position时出现Cannot refer to a non-final variable position inside an inner class defined in a different method的错误,如何解决?
      

  5.   


    你要把position 定为final 如:public View getView(final int position, View convertView, ViewGroup parent)