我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ListView如何添加item的事件监听

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ListView如何添加item的事件监听

这篇文章主要介绍ListView如何添加item的事件监听,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1. 点击事件(OnItemClickListener)

onItemClick(AdapterView<?> parent, View view, int position, long id)

parent:官方解释为:The AdapterView where the click happened,也就是用户所点击的AdapterView,这个参数一般不用。

view:当前点击的列表项所对应的布局View对象,可通过这个参数获得相应的列表项内部的组件,进而对其进行操作。举个例子,假设有一个ListView,含有4个列表项,你点了第2个,那么通过view你就可以操作第2个列表项里面的TextView、ImageView等等的组件(假设存在)。

position:当前点击的列表项的位置,从0开始,也就是点击第n个,position就是n-1。

id:当前点击的列表项的序号,也是从0开始,所以大部分时候position和id是一样的,至于这两个参数之间有什么不同,有兴趣的童鞋可以深究一下。

public class MainActivity extends Activity implements AdapterView.OnItemClickListener{  private ListView myListView;  private SimpleAdapter simpleAdapter;  private List<Map<String, Object>> data;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    data = new ArrayList<Map<String, Object>>();    simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "text"}, new int[]{R.id.img, R.id.text});    myListView = (ListView) findViewById(R.id.myListView);    //设置监听器    myListView.setAdapter(simpleAdapter);    myListView.setOnItemClickListener(this);  }  private List<Map<String, Object>> getData() {    for (int i = 0; i < 20; i++) {      Map<String, Object>map = new HashMap<String, Object>();      map.put("img", R.mipmap.ic_launcher);      map.put("text", "初始simpleAdapter"+(i+1));      data.add(map);    }    return data;  }  @Override  public void onItemClick(AdapterView<?> parent, View view, int position, long id) {    //通过view获取其内部的组件,进而进行操作    String text = (String) ((TextView)view.findViewById(R.id.text)).getText();    //大多数情况下,position和id相同,并且都从0开始    String showText = "点击第" + position + "项,文本内容为:" + text + ",ID为:" + id;    Toast.makeText(this, showText, Toast.LENGTH_LONG).show();  }}

2. 滚动事件(OnScrollListener)

void onScrollStateChanged(AbsListView view, int scrollState)

监听滚动状态的变化。

view:正在被滚动的视图,也就是当前的ListView。

scrollState:滚动状态,分别有以下几种:

SCROLL_STATE_TOUCH_SCROLL:滑动状态,手指在视图滑动,并且手指一直停留在屏幕上而未离开。

SCROLL_STATE_FLING:投掷状态,手指在离开视图前,用力划了一下(想象将视图投掷出去的感觉),视图会按照惯性滑动至停止。

SCROLL_STATE_IDLE:闲置状态,什么都没做的状态。当投掷状态或触摸滚动状态结束时,进入闲置状态。

void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

监听非滚动状态,只要ListView不滚动,就会被不断调用。

view:正在被滚动的视图,也就是当前的ListView。

firstVisibleItem:已加载的第一个列表项的索引值。

visibleItemCount:已加载的列表项的总数。

totalItemCount:适配器中数据源对应的列表项总数。

public class MainActivity extends Activity implements AbsListView.OnScrollListener{  private ListView myListView;  private SimpleAdapter simpleAdapter;  private List<Map<String, Object>> data;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    data = new ArrayList<Map<String, Object>>();    simpleAdapter = new SimpleAdapter(this, getData(), R.layout.item, new String[]{"img", "text"}, new int[]{R.id.img, R.id.text});    myListView = (ListView) findViewById(R.id.myListView);    myListView.setAdapter(simpleAdapter);    //设置监听器    myListView.setOnScrollListener(this);  }  private List<Map<String, Object>> getData() {    for (int i = 0; i < 20; i++) {      Map<String, Object>map = new HashMap<String, Object>();      map.put("img", R.mipmap.ic_launcher);      map.put("text", "初始simpleAdapter"+(i+1));      data.add(map);    }    return data;  }  @Override  public void onScrollStateChanged(AbsListView view, int scrollState) {    switch (scrollState) {      //投掷状态      case SCROLL_STATE_FLING:        Toast.makeText(this, "SCROLL_STATE_FLING", Toast.LENGTH_SHORT).show();        break;      //闲置状态      case SCROLL_STATE_IDLE:        Toast.makeText(this, "SCROLL_STATE_IDLE", Toast.LENGTH_SHORT).show();        break;      //滑动状态      case SCROLL_STATE_TOUCH_SCROLL:        Toast.makeText(this, "SCROLL_STATE_TOUCH_SCROLL", Toast.LENGTH_SHORT).show();        break;    }  }  @Override  public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {//    Toast.makeText(this, "滚动已停止,已加载的第一项的索引为:" + firstVisibleItem +//            ",已加载的列表项总数为:" + visibleItemCount + ",存在的列表项总数为:" +//            totalItemCount, Toast.LENGTH_LONG).show();  }}

以上是“ListView如何添加item的事件监听”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ListView如何添加item的事件监听

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ListView如何添加item的事件监听

这篇文章主要介绍ListView如何添加item的事件监听,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1. 点击事件(OnItemClickListener)onItemClick(AdapterView p
2023-05-31

android为ListView每个Item上面的按钮添加事件

本文介绍了ListView给每个Item上面的按钮添加事件,具体如下:1.先看下效果图: 在这里仅供测试,我把数据都写死了,根据需要可以自己进行修改,此外实现ListView上面每个Item上的Button的事件有两种方法:1.使用fina
2022-06-06

Android ListView里控件添加监听方法的实例详解

Android ListView里控件添加监听方法的实例详解 关于ListView,算是android中比较常见的控件,在ListView我们通常需要一个模板,这个模板指的不是住模块,而是配置显示在ListView里面的东西,今天做项目的时
2023-05-30

JS添加事件监听的方法是什么

这篇文章主要介绍“JS添加事件监听的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“JS添加事件监听的方法是什么”文章能帮助大家解决问题。1.我们一般在的事件添加时是这样做的:elm.onc
2023-06-26

jQuery如何监听媒体加载事件?

jQuery监听媒体加载事件jQuery提供多种方法监听媒体加载事件,包括图像加载、视频加载和音频加载。通过监听这些事件,开发人员可以在媒体加载完成后执行各种操作。图像加载事件:load()和error()视频和音频加载事件:canplay(),canplaythrough()等语法:图像:$(selector).load(handler)视频/音频:$(selector).on("event",handler)示例:当图像加载完成时显示加载指示器:$("img").load(function(){//操
jQuery如何监听媒体加载事件?
2024-04-08

jQuery如何监听图片加载事件?

监听jQuery图片加载事件jQuery提供多种监听图片加载事件的方法:$.on()方法$.ready()方法$.load()方法$.ajax()方法选择合适的方法取决于应用程序需求。$.on()灵活,$.ready()适用于页面加载时所有图片,$.load()适用于单个图片,$.ajax()通用。处理加载失败可以使用$.error()或$.ajaxError()方法。最佳实践包括:避免频繁绑定事件处理程序、使用缓存技术和考虑使用懒加载库。
jQuery如何监听图片加载事件?
2024-04-08

jQuery如何监听视频加载事件?

jQuery提供了多种方法监听视频加载事件,包括:使用on()方法监听特定事件。使用load()方法监听视频加载完成。使用play()方法和canplay事件监听视频可播放状态。使用readystatechange事件监听视频就绪状态变化。使用progress()方法监听视频加载进度,当加载完成时触发事件处理程序。
jQuery如何监听视频加载事件?
2024-04-08

jQuery如何监听音频加载事件?

监听音频加载事件,使用load()事件处理音频完全加载,使用canplay()事件处理音频加载到可播放程度。还可以监听waiting、stalled和progress事件以获取加载状态更新。最佳实践包括同时监听load和canplay事件,在使用音频数据前等待load事件触发,并在音频准备就绪后使用canplay事件执行视觉更新。
jQuery如何监听音频加载事件?
2024-04-08

jQuery如何监听窗口加载事件?

jQuery监听窗口加载事件监听窗口加载事件,确保页面所有元素加载完毕后执行操作。使用$(window).on()方法为window对象添加事件监听器,并将回调函数指定为处理程序。回调函数在事件触发时执行,可执行更新UI元素、获取数据等操作。监听窗口加载事件有助于避免意外行为,提高性能,并创建更好的用户体验。
jQuery如何监听窗口加载事件?
2024-04-07

oracle如何添加监听程序

oracle 如何添加监听程序?在 Oracle 数据库中,监听程序是一种后台进程,它监听来自客户端的连接请求并将其定向到适当的数据库实例。要添加监听程序,请按照以下步骤操作:1. 创建监听程序配置文件创建一个文本文件,其中包含监听程
oracle如何添加监听程序
2024-06-12

jQuery如何监听事件?

jQuery事件监听jQuery提供多种监听事件的方法:事件处理程序jQuery事件方法(on、off、one、trigger)事件委托事件对象(type、target、currentTarget、data)事件冒泡(stopPropagation)事件命名空间自定义事件这些方法允许开发人员有效地处理HTML元素上的事件,创建健壮且高效的JavaScript应用程序。
jQuery如何监听事件?
2024-04-08

Android ListView监听滑动事件的方法(详解)

ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1、OnTouchListener OnTouchListener方法来自View中的监听事件,可以在监听三个Action事件发
2022-06-06

listview控件如何添加数据

ListView控件可以通过Adapter来添加数据。以下是通过适配器添加数据的一般步骤:1. 创建列表项布局:创建一个XML布局文件,该布局文件描述了每个列表项的外观和布局。例如,你可以创建一个名为list_item.xml的布局文件,其
2023-08-09

jQuery如何监听页面加载进度事件?

如何使用jQuery监听页面加载进度事件?jQuery提供了以下事件来监听页面加载进度:事件类型触发时机readystatechange文档加载状态改变时DOMContentLoadedDOM构建完成后load整个页面加载完成后error加载失败时使用方法示例:$(document).on("readystatechange",function(e){console.log(e.target.readyState);});$(document).ready(function(){console.log("
jQuery如何监听页面加载进度事件?
2024-04-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录