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

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

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

adpter用的是继承的baseadapter,给整个listview上的Item设置点击事件就用listview.setOnItemClickListener(listener)就可以,下面介绍如果给Item里面某一控件设置点击事件。方法是重写 Adapter。

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

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

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

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

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

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

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

代码如下:

ListView中Item的布局文件

activity_my_goods_listview.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal" >

<TextView

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"//设置可点击

/>

<TextView

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"

/>

<TextView

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"

/>

</LinearLayout>

ListView控件所在的布局文件

activity_my_goods.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

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">

<LinearLayout //标题

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="horizontal"

android:paddingLeft="15px"

android:layout_marginLeft="5dip"

android:layout_marginTop="93dip">

<TextView

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="商品条码"

android:paddingTop="10dip"

/>

<TextView

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="商品名称"

android:paddingTop="10dip"

/>

<TextView

android:layout_width="150dip"

android:layout_height="wrap_content"

android:textColor="#000"

android:textSize="16sp"

android:text="供应商"

android:paddingTop="10dip"

/>

</LinearLayout>

<ScrollView

android:id="@+id/feedbacklayout01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_marginTop="103dip"

android:paddingTop="20.0dip" >

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:orientation="vertical"

android:paddingLeft="20px">

<ListView

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">

</ListView>

</ScrollView>

</RelativeLayout>

public class MyAdapter extends BaseAdapter {

private List<User>users

private int resource

private LayoutInflater inflater

private Context context

public MyAdapter(List<User>users, Context context, int resource,

String user_qq) {

this.users = users

this.resource = resource

this.context = context

inflater = (LayoutInflater) context

.getSystemService(Context.LAYOUT_INFLATER_SERVICE)

}

@Override

public int getCount() {

return users.size()

}

@Override

public Object getItem(int position) {

return users.get(position)

}

@Override

public long getItemId(int position) {

return position

}

@Override

public View getView(int position, View convertView, ViewGroup parent) {

if (convertView == null) {

convertView = inflater.inflate(resource, null)

}

User user = users.get(position)

//获取控件

Button button = (Button) convertView.findViewById(R.id.remark)

//为控件设置数据

button.setText("评论")

//设置监听事件

button.setOnclickListener(new View(

............

))

return convertView

}

}

呵呵好了,言归正传。ListBox的双击事件,在前台页面上ListBox是没有双击事件的所以要通过脚本来添加,具体如下:在前台页面上放置一个<asp:ListBox runat=”server”id=”lsb_**”></asp:ListBox>控件,简单测试时先往此控件中手动添加几个值,并在前台放一个隐藏域来存放你是否双击的值如:<input type=”hidden” id=”hdvalue” name=”hdvalue” value="false" runat=”server”/>,用true和false来表示。 在前台上添加<script type=”text/vbscript”>option explicit sub lsb_**_ondblclick() Form1.hdvalue.value="true" Form1.submit() end sub</script>在后台就这么写:在PageLoad事件中写如下:If(IsPostBack){ If(hdvalue.Value == “true”) Lsb_**_DbClick()}然后在后台中添加Lsb_**_DbClick()这个方法。在前台上方一个Label用来显示你双击的项是否是你选择的。如: Protected void Lsb_**_DbClick(){ This.Label1.Text = “双击了“+Lsb_**.SelectedItem.ToString()}这样就可以为ListBox添加双击事件了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11648254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存