本人参照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事件了,非常奇怪,麻烦各位帮忙分析下原因。
- 大小: 8.8 KB
分享到:
相关推荐
为了解决这个问题,你需要重写`ViewPager`的`onInterceptTouchEvent()`方法,让其在某些情况下不拦截事件,让事件传递给`GridView`: ```java @Override public boolean onInterceptTouchEvent(MotionEvent ev) { ...
在Android开发中,ListView和GridView是两种常用的布局控件,它们在展示大量数据时非常有用。本篇文章将深入探讨如何在ListView中嵌套GridView,以及实现这一功能的关键知识点。 首先,ListView是一种可以滚动的...
3. **监听事件**:为了响应用户的点击事件,你需要为GridView设置OnItemClickListener。在onItemClick()回调中,根据点击的行号,确定要显示的Fragment。同时,可以更改选中项的样式,以模拟Tab被选中的效果。 4. *...
当我们需要对GridView中的每个项目进行特定操作,例如点击事件处理、数据绑定等,获取每个项目的ID就显得至关重要。以下是对"gridview获取Id方法"的详细解释。 首先,GridView继承自AbsListView,它的工作原理是...
我们还需要处理用户的点击事件,通常在GridView上设置一个OnItemClickListener,当用户点击某个单元格时,可以触发相应的操作,如打开新的Activity、显示详细信息等。 9. **适配不同屏幕尺寸**: Android设备有...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建列表或展示图片。在很多应用中,我们可能需要实现GridView的选中效果,包括设置默认选中项以及选中后的视觉反馈。...
GridView是Android平台中一个常用的布局控件,常用于展示数据集,如图片、列表等,以网格的形式排列。在这个“GridView demo 实例”中,我们将深入探讨如何在Android应用开发中有效地利用GridView来构建用户界面。 ...
4. **监听器**: 为了响应用户的点击事件,我们需要为GridView设置OnItemClickListener或者使用GestureDetector来检测滑动事件。点击事件通常会启动一个新的Activity,展示与所选菜单项相关的列表内容。而滑动事件...
点击事件中,更新该状态列表并通知Adapter数据已改变,触发GridView的刷新。 4. **全选和取消全选功能** 在GridView上方添加一个全选按钮,点击时将所有项的选中状态切换。这需要在Adapter中维护一个全局的全选...
在Android中,可以通过实现AdapterView.OnItemClickListener接口并在GridView实例上设置这个监听器来实现。当用户点击GridView中的某个项目时,会触发onItemClick()方法,我们可以在这个方法中添加相应的逻辑处理。 ...
为了实现点击事件,可以为GridView设置OnItemClickListener,当用户点击某个图片时触发相应的操作,比如跳转到详情页面: ```java gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @...
4. **点击事件处理**:可以为GridView设置`OnItemClickListener`监听器,当用户点击GridView中的某一项时,触发相应的回调方法,执行相应的业务逻辑。 5. **动态加载与滚动优化**:对于大量数据,可以考虑使用懒...
通过设置`onItemClickListener`,我们可以监听到用户点击每个单元格时触发的事件,从而实现跳转、展示详情等功能。同时,长按事件也可以通过`setOnItemLongClickListener`进行处理,提供更多的交互可能性。 在...
10. **滚动事件**:可以通过监听GridView的滚动事件,如`OnScrollListener`,来实现滚动时触发的特定功能,例如加载更多数据或隐藏/显示顶部栏。 11. **动画效果**:可以利用`Animation`类为GridView的项添加进入、...
要实现在GridView中点击行后触发事件,你需要为GridView添加一个OnItemClickListener。在你的Activity或Fragment中注册监听器,重写`onItemClick(AdapterView<?> parent, View view, int position, long id)`方法。...
在Android开发中,有时我们需要创建一个用户友好的界面来展示数据,这时`ViewPager`和`GridView`结合使用就能实现高效且美观的效果。本教程将详细讲解如何在`ViewPager`中加载`GridView`来构建一个日历应用,实现...
接着,我们需要实现`onItemClickListener`,以便当用户点击`GridView`中的项时能触发相应事件,比如打开一个新的详情页面或者播放视频。 然后,`ImageLoader`的配置和使用至关重要。我们需初始化`ImageLoader`,...
在这个"安卓gridview"的主题中,我们将深入探讨GridView的工作原理、基本用法以及如何自定义其行为。 1. **工作原理**: GridView继承自ViewGroup,它会根据设定的列数自动调整子视图(Views)的大小和位置,使得...
在实际项目中,我们还需要处理`GridView`的滚动事件,以及考虑性能优化,如使用`ViewHolder`模式减少视图复用时的查找成本,避免内存泄漏等。 总之,通过Android Studio,我们可以方便地创建包含`GridView`的下拉...
4. setOnItemClickListener(AdapterView.OnItemClickListener):监听GridView的点击事件,防止在拖放时误触发点击事件。 5. DragHelper:辅助类,用于计算手指移动的距离,判断是否进入拖放模式,以及处理拖放过程中...