怎么给listview item 设置监听事件

2025-05-06 00:25:11
推荐回答(2个)
回答1:

给Listview里面Item里的每一个控件怎么设定点击事件

adpter用的是继承的baseadapter,给整个listview
上的
Item
设置点击事件就用listview.setOnItemClickListener(listener)就可以,
下面介绍
如果

I
tem里面某一
控件设置点击事件。方法是重写
Adapter。

ListView工作原理(针对下面代码):

1.
给ListView设置数据适配器,此处程序是自己重写的Adapter,创建Adapter 的时候主要做下面的工作:

(1)把ListView需要显示的数据传给Adapter

(2)把ListView显示Item的界面传给Adapter

(3)把上下文对象传给Adapter,主要用来得到LayoutInflater对象来得到Item界面

2. 给ListView设置当点击Item对象的时候执行的操作,此处要实现给Item中的各项也就是该程序的三个TextView设置监听器,也就是调用Adapter中的getView函数。

3. getView函数实现的操作是:第一要将Item要显示的数据显示,然后设置监听器,为监听器设置操作。

代码如下:

ListView中Item的布局文件

activity_my_goods_listview.xml




android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal" >


android:id = "@+id/goodBarcode"

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:paddingTop="10dip"

android:clickable="true"//设置可点击

/>


android:id="@+id/goodName"

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:paddingTop="10dip"

android:clickable="true"

/>


android:id="@+id/goodProvider"

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:paddingTop="10dip"

android:clickable="true"

/>



ListView控件所在的布局文件

activity_my_goods.xml


xmlns:tools="http://schemas.android.com/tools"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="#ffffffff"

android:gravity="center"

android:orientation="vertical">


android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:paddingLeft="15px"

android:layout_marginLeft="5dip"

android:layout_marginTop="93dip">


android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="商品条码"

android:paddingTop="10dip"

/>


android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="商品名称"

android:paddingTop="10dip"

/>


android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="供应商"

android:paddingTop="10dip"

/>




android:id="@+id/feedbacklayout01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_marginTop="103dip"

android:paddingTop="20.0dip" >


android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:paddingLeft="20px">


android:id="@+id/goodsinfoListView"

android:layout_width="wrap_content"

android:layout_height="354dp"

android:layout_marginBottom="5.0dip"

android:layout_marginRight="5.0dip"

android:textColor="#000"

android:textSize="16.0dip">





回答2:

listview 注册onItemClick事件即可,然后当item点击的时候就会回调onItemClick, 如果是想给item里的一个按键或者子控件注册点击事件,那就要在适配器的getView方法中对这个contentView做事件的注册。