当前位置:首页 » 安卓系统 » androidgridview事件处理

androidgridview事件处理

发布时间: 2023-03-16 04:30:38

① android中添加了一个GridView,在GridView中的每一个Item中,又有一个按钮,要给每一个按钮添加点击事件

请参考我以前写的一篇帖子,是给listview的,但好像不能使用button,最好把button换成imageview,反正imageview也是能点击的。你遇到这个问题是因为你给每一个item设置了事件,然后当你点击这个item的时候,里面的button被点中了。解决办法是继承view,写一个自定义的view,重写他的 setPressed 方法,这个方法里面判断它在点中的同时是不是父view也被点中了,如果父view也被点中的话,之间return,否则调用super的setpressed方法。这样就能使你的子view不在父view点中的时候获得事件。帖子在http://blog.csdn.net/huihuangui/article/details/6768629

② android使用gridview布局setOnItemClickListener中如何使用OnClickListener按钮事件

难道setOnItemClickListener不就是GridView的点击事件?为什么还要逗祥OnClickListener?难道旅指扒内部还有拆昌布局?

③ android gridview图片点击事件设置

首先,应该是OnItemClickListener吧。
这个事件里有4个参郑饥数,public
void
onItemClick(AdapterView<?>
parent,
View
griditem,
int
position,long
arg3),其中griditem指你点击的项;position指的是你点击的项喊源返在gridview数据源中的索引。
如果裂消你想改变原来的图片,则可以这么做(假设你gridview中item的布局文件里只有一个ImageView):
ImageView
image=(ImageView)griditem;
image.setBackgroundDrawable(R.drawable.newimage);//这里写新图片资源名称

④ android gridview的监听事件不起作用啊

gridView事件处理不了,那说明代码写的有问题了。

1.关于Android事件构成

在Android中,事件主要包括点按、长按、拖拽、滑动等,点按又包括单击和双击,另外还包括单指操作和多指操作。所有这些都构成了Android中的事件响应。总的来说,所有的事件都由如下三个部分作为基础:

1.按下(ACTION_DOWN)

2.移动(ACTION_MOVE)

3.抬起(ACTION_UP)

所有的操作事件首先必须执行的是按下操作(ACTIONDOWN),之后所有的操作都是以按下操作作为前提,当按下操作完成后,接下来可能是一段移动(ACTIONMOVE)然后抬起(ACTION_UP),或者是按下操作执行完成后没有移动就直接抬起。这一系列的动作在Android中都可以进行控制。


2.事件的处理API

在View和ViewGroup中都存在dispatchTouchEvent和onTouchEvent方法,但是在ViewGroup中还有一个onInterceptTouchEvent方法,在Android中,所有的事件都是从开始经过传递到完成事件的消费,这些方法的返回值就决定了某一事件是否是继续往下传,还是被拦截了,或是被消费了。

public boolean dispatchTouchEvent(MotionEvent event)
public boolean onTouchEvent(MotionEvent event)
public boolean onInterceptTouchEvent(MotionEvent event)


3.事件处理API的说明

  1. dispatchTouchEvent方法用于事件的分发,Android中所有的事件都必须经过这个方法的分发,然后决定是自身消费当前事件还是继续往下分发给子控件处理。返回true表示不继续分发,事件没有被消费。返回false则继续往下分发,如果是ViewGroup则分发给onInterceptTouchEvent进行判断是否拦截该事件。

  2. onTouchEvent方法用于事件的处理,返回true表示消费处理当前事件,返回false则不处理,交给子控件进行继续分发。

  3. onInterceptTouchEvent是ViewGroup中才有的方法,View中没有,它的作用是负责事件的拦截,返回true的时候表示拦截当前事件,不继续往下分发,交给自身的onTouchEvent进行处理。返回false则不拦截,继续往下传。

⑤ android gridview 图片单击事件 求助

写监听就悔氏好了啊。
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
//这里面的arg2就是唤前喊你和野单击的图标是第几个(第一个 arg2 = 0)
}
}

⑥ 如何设置 android gridview 怎么设置 , 一些item可以点击,另外.....

这个要在代码中进行设置,基本上有两种方式:

  1. 在GridView所在的 activity(或者fragment)中, 找到该View,监听点击事件:


    java">gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
    @Override
    publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
    //点击item触发,进行判断,如果需要处理点击,就进行处理,否则,什么也不做
    if(/*处理点击条件*/){
    //要做的事
    }
    }
    });
  2. 在自己写的GridView对应的适配器中(一般继承于BaseAdapter)的getView中进行判断,如果是需呀处理的item, 就调用setOnClickListener,并定义相应的点击事件,否则可以不绑定点击事件。

⑦ android GridView怎么实现合并行或者达到同样的效果

GridView跟ListView都是比较常用的多控件布局,而GridView更是实现九宫图的首选!本文就是介绍如何使用GridView实现九宫图。GridView的用法很多,网上介绍最多的方法就是自己实现一个ImageAdapter继承BaseAdapter,再供GridView使用,类似这种的方法本文不再重复,本文介绍的GridView用法跟前文ListView的极其类似
本文需要添加/修改3个文件:main.xml、night_item.xml、JAVA源代码。
main.xml源代码如下,本身是个GirdView,用于装载Item:

[xhtml] view plainprint?
<?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"
/>

介绍一下里面的某些属性:
android:numColumns="auto_fit" ,GridView的列数设置为自动
android:columnWidth="90dp",每列的宽度,也就是Item的宽度
android:stretchMode="columnWidth",缩放与列宽大小同步
android:verticalSpacing="10dp",两行之间的边距,如:行一(NO.0~NO.2)与行二(NO.3~NO.5)间距为10dp
android:horizontalSpacing="10dp",两列之间的边距。

接下来介绍 night_item.xml,这个XML跟前面ListView的ImageItem.xml很类似:

[xhtml] view plainprint?
<?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>

最后就是JAVA的源代码了,也跟前面的ListView的JAVA源代码很类似,不过多了“选中”的事件处理:

[java] view plainprint?
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", "NO."+String.valueOf(i));//按序号做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"));
}

}

⑧ android的gridview 事件监听报错

你的item没有获取到,item为NULL。然后在下面你用item.get方法就报空指针异常了。

⑨ 如何模拟android 中GridView的选中item的事件

gridView.setOnItemClickListener(newAdapterView.OnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){
//dosomething
}
});

⑩ android gridview 用button怎么每点击事件

可以自定义adpter,adpter里面的getView()方法里不是会初始化button吗,然后再哗做直接调用该button的实例,button.setOnClickListener(),在其监听实践中处理你要处理的旦芦激东东,
public View getView(int position, View convertView, ViewGroup parent) {

Button button = findViewById.....

button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
/模袜/处理事件
}
});

}

热点内容
数据库沉余 发布:2025-05-10 11:38:37 浏览:67
编译器的结果是什么语言 发布:2025-05-10 11:10:32 浏览:146
快手跑金脚本 发布:2025-05-10 11:10:29 浏览:360
pl0语言编译器分析实验 发布:2025-05-10 11:10:22 浏览:25
湖南外网ftp服务器租用云主机 发布:2025-05-10 10:59:19 浏览:761
入门编程教学视频 发布:2025-05-10 10:56:41 浏览:915
php开发php开发 发布:2025-05-10 10:37:49 浏览:863
服务器地址s开头 发布:2025-05-10 10:36:59 浏览:842
为什么账号风险不能修改密码 发布:2025-05-10 10:31:23 浏览:70
sql与in相对 发布:2025-05-10 10:31:15 浏览:227