0 0

gridview中的OnItemClickListener事件触发问题!!!10

本人参照CSDN上一位技术专家博客的文章(原文地址:http://blog.csdn.net/hellogv/archive/2009/09/19/4567095.aspx,标题“Android入门第八篇之GridView(九宫图)),做了下测试。

主界面图如下:

 

 

 

共涉及三段代码:main.xml、item.xml以及java源代码。(说明:代码引自上面所列博客里的内容,仅做小量改动)。

1、main.xml

<?xml version="1.0" encoding="utf-8"?>  
<GridView xmlns:android="http://schemas.android.com/apk/res/android"    
    android:id="@+id/gridview"  
    android:layout_width="fill_parent"    
    android:layout_height="fill_parent"  
    android:numColumns="auto_fit"  
    android:verticalSpacing="10dp"  
    android:horizontalSpacing="10dp"  
    android:columnWidth="90dp"  
    android:stretchMode="columnWidth"  
    android:gravity="center"  
/>  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2009/09/19/4567095.aspx

 

 2、item.xml

<?xml version="1.0" encoding="utf-8"?>  
<RelativeLayout    
         xmlns:android="http://schemas.android.com/apk/res/android"    
         android:layout_height="wrap_content"    
         android:paddingBottom="4dip" android:layout_width="fill_parent">  
         <ImageView    
               android:layout_height="wrap_content"    
               android:id="@+id/ItemImage"    
               android:layout_width="wrap_content"    
               android:layout_centerHorizontal="true">    
         </ImageView>  
         <TextView    
               android:layout_width="wrap_content"    
               android:layout_below="@+id/ItemImage"    
               android:layout_height="wrap_content"    
               android:text="TextView01"    
               android:layout_centerHorizontal="true"    
               android:id="@+id/ItemText">  
         </TextView>  
</RelativeLayout>  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2009/09/19/4567095.aspx

 

3、java源代码

 

public void onCreate(Bundle savedInstanceState) {   
      super.onCreate(savedInstanceState);   
      setContentView(R.layout.main);   
      GridView gridview = (GridView) findViewById(R.id.gridview);   
         
      //生成动态数组,并且转入数据   
      ArrayList<HashMap<String, Object>> lstImageItem = new ArrayList<HashMap<String, Object>>();   
      for(int i=0;i<10;i++)   
      {   
        HashMap<String, Object> map = new HashMap<String, Object>();   
        map.put("ItemImage", R.drawable.icon);//添加图像资源的ID   
        map.put("ItemText", "测试");  
        lstImageItem.add(map);   
      }   
      //生成适配器的ImageItem <====> 动态数组的元素,两者一一对应   
      SimpleAdapter saImageItems = new SimpleAdapter(this, //没什么解释   
                                                lstImageItem,//数据来源    
                                                R.layout.night_item,//night_item的XML实现   
                                                   
                                                //动态数组与ImageItem对应的子项           
                                                new String[] {"ItemImage","ItemText"},    
                                                   
                                                //ImageItem的XML文件里面的一个ImageView,两个TextView ID   
                                                new int[] {R.id.ItemImage,R.id.ItemText});   
      //添加并且显示   
      gridview.setAdapter(saImageItems);   
      //添加消息处理   
      gridview.setOnItemClickListener(new ItemClickListener());   
  }   
     
  //当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件   
  class  ItemClickListener implements OnItemClickListener   
  {   
public void onItemClick(AdapterView<?> arg0,//The AdapterView where the click happened    
                                  View arg1,//The view within the AdapterView that was clicked   
                                  int arg2,//The position of the view in the adapter   
                                  long arg3//The row id of the item that was clicked   
                                  ) {   
    //在本例中arg2=arg3   
    HashMap<String, Object> item=(HashMap<String, Object>) arg0.getItemAtPosition(arg2);   
    //显示所选Item的ItemText   
    setTitle((String)item.get("ItemText"));   
}   
       
  }  


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hellogv/archive/2009/09/19/4567095.aspx

 

问题来了,我把上面item.xml中的imageview换成imagebutton之后,再点击图标,就不会触发ItemClickListener事件了,非常奇怪,麻烦各位帮忙分析下原因。


问题补充:
magebutton是用View.OnClickListener... 需要disable掉, itemclicklistener才会有事件来接收.
请教lordhong,如何将View.OnClickListener disable掉呢?
问题补充:
能不能麻烦lordhong帮我把这个实现方法的代码贴出来,我研究了几天还是还搞懂怎么用代码实现你说的那个方法,谢谢了!
2009年10月01日 07:58

3个答案 按时间排序 按投票排序

0 0

我倒... 最近忙, 有机会我试下...

2009年10月16日 21:46
0 0

你在那个listener里面直接call super.OnItemClickListener把event往上送...

2009年10月14日 22:36
0 0

imagebutton是用View.OnClickListener... 需要disable掉, itemclicklistener才会有事件来接收

2009年10月01日 07:58

相关推荐

    Viewpager+Gridview响应点击事件

    为了解决这个问题,你需要重写`ViewPager`的`onInterceptTouchEvent()`方法,让其在某些情况下不拦截事件,让事件传递给`GridView`: ```java @Override public boolean onInterceptTouchEvent(MotionEvent ev) { ...

    listview 中嵌套 gridview

    在Android开发中,ListView和GridView是两种常用的布局控件,它们在展示大量数据时非常有用。本篇文章将深入探讨如何在ListView中嵌套GridView,以及实现这一功能的关键知识点。 首先,ListView是一种可以滚动的...

    使用GridView和Fragment实现Tab效果

    3. **监听事件**:为了响应用户的点击事件,你需要为GridView设置OnItemClickListener。在onItemClick()回调中,根据点击的行号,确定要显示的Fragment。同时,可以更改选中项的样式,以模拟Tab被选中的效果。 4. *...

    gridview获取Id方法

    当我们需要对GridView中的每个项目进行特定操作,例如点击事件处理、数据绑定等,获取每个项目的ID就显得至关重要。以下是对"gridview获取Id方法"的详细解释。 首先,GridView继承自AbsListView,它的工作原理是...

    Android中GridView以表格形式显示多张图片(仿桌面)

    我们还需要处理用户的点击事件,通常在GridView上设置一个OnItemClickListener,当用户点击某个单元格时,可以触发相应的操作,如打开新的Activity、显示详细信息等。 9. **适配不同屏幕尺寸**: Android设备有...

    GridView设置选中状态

    在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建列表或展示图片。在很多应用中,我们可能需要实现GridView的选中效果,包括设置默认选中项以及选中后的视觉反馈。...

    GridView demo 实例

    GridView是Android平台中一个常用的布局控件,常用于展示数据集,如图片、列表等,以网格的形式排列。在这个“GridView demo 实例”中,我们将深入探讨如何在Android应用开发中有效地利用GridView来构建用户界面。 ...

    横向滑动菜单gridview+listview

    4. **监听器**: 为了响应用户的点击事件,我们需要为GridView设置OnItemClickListener或者使用GestureDetector来检测滑动事件。点击事件通常会启动一个新的Activity,展示与所选菜单项相关的列表内容。而滑动事件...

    GridView 单选和全选功能以及全选操作和取消全选

    点击事件中,更新该状态列表并通知Adapter数据已改变,触发GridView的刷新。 4. **全选和取消全选功能** 在GridView上方添加一个全选按钮,点击时将所有项的选中状态切换。这需要在Adapter中维护一个全局的全选...

    ScollView嵌套不可滑动的GridView

    在Android中,可以通过实现AdapterView.OnItemClickListener接口并在GridView实例上设置这个监听器来实现。当用户点击GridView中的某个项目时,会触发onItemClick()方法,我们可以在这个方法中添加相应的逻辑处理。 ...

    GridView手机相册

    为了实现点击事件,可以为GridView设置OnItemClickListener,当用户点击某个图片时触发相应的操作,比如跳转到详情页面: ```java gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @...

    安卓gridview相关相关-gridview最新版本.rar

    4. **点击事件处理**:可以为GridView设置`OnItemClickListener`监听器,当用户点击GridView中的某一项时,触发相应的回调方法,执行相应的业务逻辑。 5. **动态加载与滚动优化**:对于大量数据,可以考虑使用懒...

    GridView示例

    通过设置`onItemClickListener`,我们可以监听到用户点击每个单元格时触发的事件,从而实现跳转、展示详情等功能。同时,长按事件也可以通过`setOnItemLongClickListener`进行处理,提供更多的交互可能性。 在...

    GridView使用技巧汇总

    10. **滚动事件**:可以通过监听GridView的滚动事件,如`OnScrollListener`,来实现滚动时触发的特定功能,例如加载更多数据或隐藏/显示顶部栏。 11. **动画效果**:可以利用`Animation`类为GridView的项添加进入、...

    点击gridview显示详细页

    要实现在GridView中点击行后触发事件,你需要为GridView添加一个OnItemClickListener。在你的Activity或Fragment中注册监听器,重写`onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id)`方法。...

    ViewPager中加载GridView实现日历

    在Android开发中,有时我们需要创建一个用户友好的界面来展示数据,这时`ViewPager`和`GridView`结合使用就能实现高效且美观的效果。本教程将详细讲解如何在`ViewPager`中加载`GridView`来构建一个日历应用,实现...

    gridview+imageloader+viewpager的简单实例

    接着,我们需要实现`onItemClickListener`,以便当用户点击`GridView`中的项时能触发相应事件,比如打开一个新的详情页面或者播放视频。 然后,`ImageLoader`的配置和使用至关重要。我们需初始化`ImageLoader`,...

    安卓gridview

    在这个"安卓gridview"的主题中,我们将深入探讨GridView的工作原理、基本用法以及如何自定义其行为。 1. **工作原理**: GridView继承自ViewGroup,它会根据设定的列数自动调整子视图(Views)的大小和位置,使得...

    Android Studio —— GridView(模仿魅蓝手机下拉窗口)

    在实际项目中,我们还需要处理`GridView`的滚动事件,以及考虑性能优化,如使用`ViewHolder`模式减少视图复用时的查找成本,避免内存泄漏等。 总之,通过Android Studio,我们可以方便地创建包含`GridView`的下拉...

    Android GridView拖拽实例源码.rar

    4. setOnItemClickListener(AdapterView.OnItemClickListener):监听GridView的点击事件,防止在拖放时误触发点击事件。 5. DragHelper:辅助类,用于计算手指移动的距离,判断是否进入拖放模式,以及处理拖放过程中...

Global site tag (gtag.js) - Google Analytics