或许刚学Android的朋友会觉得我这篇文章没多大用处,如果是这样的话,你可以不看。
可能是因为一直在做Web的缘故吧,总会把Web的思想带到Android上来。Web控件是非常强大的,我曾经跟我一个朋友(从事Android开发的)诉苦:“怎么Android上连一个像样Select都没有呢?只有Text,却不能给它ID,直接获取到用户点击的索引index,然后还要手动从数据中读该索引的ID值。这也未免不过弱小了吧?”我朋友说:“这是嵌入式,你以为是什么啊~~~哪有这么强大的功能,有的话就要自己再做一层封装。体谅一下吧。”呵呵,是的,我们在做的是嵌入式手机应用系统开发。越底层,现成的功能就越少。
就像这篇文章要提到的GridView的事件监听,题目虽是事件监听,但是我这里要介绍的关键不在于怎么实现事件监听,因为实现事件监听对于一个有基础的朋友来说,应该都懂。先看下面的代码:
GridView gridView = (GridView) findViewById(R.id.homeGrid);//获取GridView
gridView.setOnItemClickListener(this);//设置事件监听
// 初始化图片数组和文本数组
Integer[] images = new Integer[]{ R.drawable.shoppingcart1,
R.drawable.shoppingcart2, R.drawable.shoppingcart3,
R.drawable.shoppingcart4, R.drawable.shoppingcart5,
R.drawable.shoppingcart6, R.drawable.shoppingcart7 };
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int idx, long arg3) {
// TODO Auto-generated method stub
switch (images[idx]) {
case R.drawable.shoppingcart1:
startActivity(new Intent(this, ChoiceCarActivity.class));//启动另一个Activity
finish();//结束此Activity,可回收
break;
default:
break;
}
}
上面是这一篇文章要介绍的全部代码,代码很简单。我要说明的关键点只有一个,大家看看OnItemClick()方法。这是一个事件的回调方法。跟OnClick事件不一样的事,OnClick事件传进来的是一个View,也就是用户点击的控件对象,根据这个View就可以判断用户点击了哪个对象。但是在GridView里面,因为使用同一个模板,所以无论点击哪一个格子,返回的View几乎是同一个,Id也一样。哪如何解决呢?
请各位留心一下,OnClick和OnItemClick(),不同的是多了一个Item,这个事件一般会用在GridView和ListView这类控件中,因为这些控件都是由多个Item组成的,都需要给他们设置Adapter。所以OnItemClickListener是在AdapterView包下,而OnClickListener是在View包下。所以在使用GridView和ListVIew这类控件时,要注意监听的是OnItemClick事件,而非OnClick事件。
从上面的代码可以看出,OnItemClick方法有四个参数传进来。到底是一些什么参数呢?
第一个参数AdapterView,这个我也没测试出来,估计就是我们加进去的那个Adapter,就是上一篇文章所提到的SimpleAdapter。在这里作用不大。
第二个参数View,这个应该就是点击位置的控件,但是我的GridView中不只是一个控件啊,所以这个控件作用也不大。
第三个参数int 类型的index。这个是最重要的,这里返回的是GridView被点击的格子的索引。
第四个参数long类型的index。这个我测试的时候,发现跟第三个参数是同一个值的,至于他们有什么区别呢?我还没深入到。唯一不同的是一个是int,另一个是long。但是我相信他们应该存在更大的区别,因为暂时没有获取到源码,所以无法深入理解。这个暂时搁浅。
从上面的介绍可以看出,第三个参数才是我们所需要的。也就是说,当用户点击一个格子的时候,我们只需要获取这个格子的索引,然后根据我们填充格子的数据源(数组)来获取该位置的对应数据。比如说,上面的图片数组就是一个数据源,我可以根据这个index来获取到用户点击的是哪个图片,然后根据这个图片进行相应的跳转。
分享到:
相关推荐
- `OnScrollListener`:监听GridView的滚动事件,可用于实现无限滚动加载等效果。 ### 5. GridView的实例源码分析 在"35.GridView控件学习GridView控件学习"这个文件中,你可以找到一个关于GridView使用的实例代码...
在这个“gridview+事件监听”的主题中,我们将深入探讨如何在GridView中实现事件监听,特别是针对单击和长按事件的处理,以及如何在GridView中更新图片。 首先,我们需要了解GridView的基本使用。GridView继承自...
GridView是Android平台上一种常用的布局控件,它允许开发者在二维网格中展示数据集。这个控件通常用于创建如照片库、应用图标选择器等需要多列显示内容的界面。在"35.GridView控件学习.rar"这个压缩包中,包含了关于...
在Android开发中,GridView是一个...通过以上介绍,你应该对Android中的GridView有了全面的理解,包括它的基本用法、属性设置、事件监听和性能优化。实际开发中,可以根据需求灵活运用,创建出各种各样的网格布局效果。
综上所述,GridView的点击事件处理是Android开发中的基础技能,通过合理的事件监听和处理,可以实现丰富的用户交互。在实际开发中,结合数据适配器和性能优化策略,能够创建出高效且用户体验良好的界面。
此外,为了增加交互性,你可能还需要监听GridView的点击事件,这可以通过设置OnItemClickListener实现: ```java gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public ...
总而言之,这个资料包将引导你深入理解GridView的使用,包括但不限于数据绑定、事件监听、性能优化等方面。通过学习和实践,你将能够自如地在Android应用中运用GridView,创建出美观且实用的界面。
4. 监听器:在GridView中添加OnScrollListener,当用户滚动到底部时,触发加载下一页。 ```java gridView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void ...
综上所述,实现Android GridView的分页和滑动效果涉及到的主要知识点包括:GridView的基础用法、Adapter的使用、滚动事件监听、自定义滚动效果以及用户体验优化。理解并掌握这些内容,可以帮助开发者创建出更加动态...
以上就是关于Android中的GridView、事件处理以及Intent传递参数的相关知识。理解并熟练掌握这些内容,对于开发具有交互性的Android应用至关重要。在实际项目中,还可以结合Adapter的其他方法,如`...
6. 可选:为GridView添加点击事件监听器,例如使用`.setOnItemClickListener()`。 四、进一步优化 1. 使用convertView进行视图复用,提高性能。 2. 根据数据类型动态调整单元格布局。 3. 考虑到数据量大时,使用...
在Android开发中,GridView是一种非常常见的视图组件,它允许我们以网格的形式展示数据,通常用于创建像照片库、菜单选项或图标排列等界面。在本压缩包"Android代码-GridView.zip"中,我们可以期待找到一个关于如何...
13. GridView 事件监听:setOnItemClickListener 这些监听事件可以帮助开发者检测用户交互或系统事件,并执行相应的操作。 监听器的优点 使用监听器可以带来以下优点: * 灵活性强:监听器可以根据需要执行不同...
在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的形式展示数据,通常用于创建类似照片墙、应用快捷方式或者菜单等界面。在本篇内容中,我们将深入探讨如何在Android应用中有效地使用GridView...
在Android开发中,GridView是一种非常常见的布局控件,它允许我们以网格的...通过研究这个示例,开发者不仅可以学会如何在GridView中显示和操作图片,还能理解Android数据绑定和事件处理的基本原理,提升项目开发能力。
- 事件监听:可以为GridView设置OnItemClickListener和OnItemLongClickListener,监听单击和长按事件。 - 动画效果:通过自定义Animation或使用Transition动画,实现单元格的添加、删除等操作的动画效果。 - 拖动...
6. **事件监听**:如果你需要对GridView的点击事件进行处理,可以在Adapter的`getView()`方法中添加点击监听器,或者在Activity中设置GridView的OnItemClickListener。 7. **性能优化**:为了提高性能,你应该复用...
5. GridView的事件监听: - `.setOnItemClickListener()`:设置点击事件监听器,处理用户点击单元格时的行为。 - `setOnItemLongClickListener()`:设置长按事件监听器,实现长按操作。 - `setOnScrollListener()...
在Android开发中,自定义GridView以实现长按拖动排序是一项常见的需求,特别是在构建具有可交互界面的应用中。本文将详细讲解如何实现这样一个功能,同时包括震动提示、固定"更多"项以及保存排序状态到数据库。 ...