在android app中的gridview里面这么添加checkbox?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在android app中的gridview里面这么添加checkbox?相关的知识,希望对你有一定的参考价值。
现在我有一个gridview,众有3个纵队(column)。现在我在想加一纵队,这个一队只想添加checkbox。
我的代码很像这个例子http://www.tutorialspoint.com/android/android_grid_view.htm.
如果有谁知道这么做的,请告诉我。
谢谢你们的帮助。
http://www.tutorialspoint.com/android/android_grid_view.htm
打错了。
不好意思了!
1。使用循环把适配数据中的position%3 == 0 && position != 0的地方都加一个临时数据,
在adapter中getView遇到临时数据的地方都显示checkbox,注意处理最后一个数据。
2。使用ListView取代GridView追问
1. 为什么要position != 0的条件?循环是在那里用?
2. 您说“注意处理最后一个数据”。请您在仔细说明一下吗?
我是Android开发新手。我的中文也不太好。最好可以帮我用代码解释吗?
谢谢您的帮助。
1.for(position= 0; position< adapter.getCount(); position++)
...
2.最后一条数据的位置肯能如下
—— —— —— 口
—— 口
这是中间有两个空的数据需要填充啊。
“在adapter中getView遇到临时数据的地方都显示checkbox”
这样知道你遇到了这个数据?
这块代码加在getView那里? 要用循环吗?
谢谢您的帮助。
我打错了网站。
是http://www.tutorialspoint.com/android/android_grid_view.htm
不好意思了。
android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
我们直接入主题。所有问题例子请参照下图
1,怎样使图片具有点击事件?
答:
解决方法:
在你的BaseAdapter里面不要设置下面这三个东西,然后再设置GridView的onItemClick。
gridView.setClickable(false);
gridView.setPressed(false);
gridView.setEnabled(false);
2,为什么我在已经处理了listView点击事件阻断的情况下,同时图片具有点击事件,此时再点击和图片同高度的空白处,却无法执行listView的item点击事件,点击其它非同高度地方,例如点击文字却可以。
答:
原因:
GridView 格子中的View 有点击事件,证明你没阻断,之所以点击和图片同高度的空白处没有执行 listView 的点击事件是你的GridView 霸占了整行,即使你的格子只有一个,验证我这句话就是给GridView 设置个背景,若非如此请留言,我帮你 fix。
解决方法:
动态给你的 GridView 设置宽度,不要使用 Wrap_Parent 等.
3,如何动态地给嵌套在Listview 里面的 GridView 设置宽、高度?
答:
解决方法:
GridView 没有setWidth() 等操作,你必须使用 setLayoutParams() 来搞定。
4,为什么我给 GridView 设置了setLayoutParams() 后被抛出强转类型失败异常,程序崩溃?
答:
原因/解决方法:
如果你的 GridView 是某个View 的子 View,例如你使用 LinearLayout 包裹 GridView,那么你的GridView要设置的 setLayoutParams() 所传入的 LayoutParams 必须要是LinearLayout。即是
ViewGroup.LayoutParams linearParams =newLinearLayout.LayoutParams((70,70);
gridView.setLayoutParams(linearParams); 否则抛出异常。
5,为什么我动态设置了 GridView 的宽度后,发现 格子 有错位、重叠、间隙太大、很丑很没幸福感的现象?
答:
原因:
宽度、间隙太大--你的 GridView 如果使用默认的排版方式,即是如果你是没有设置 gridView.setStretchMode(GridView.NO_STRETCH); 的话,那么它就是把宽度平均分来显示每个格子的,这样会造成。解决方法是设置GridView.NO_STRETCH,然后是自定义格子宽度和间隙。或者设置好 GridView的宽度。
重叠、遮挡的现象--如果你设置了GridView.NO_STRETCH,那么就可能会出现重叠、遮挡的现象,解决方法是动态测量设备宽度再使用等比例来设置理想格子宽度,既不影响格子的点击,又能相应 ListView 的Item 点击,例如:
int myWidth = 80; // 这个值是你的显示图片的宽度,例如我的ImageView,我设置了它宽为80dp,那么就是80
int distance = 3;//这个是每个格子之间的 间隙
int userPhoneWidth = 设备的宽度; // 自己使用代码获取
int myPhoneWith = 1080 ; // 这个是你测试的设备的宽度,我的是1080
公式计算,先声明下,上面4个值一旦确定了就适用于所有设备,因为采用的是等比缩放,也测试过。
(其他手机的理想格子宽度)/userPhoneWidth = myWidth/myPhoneWith,简单化简后:
理想格子宽度 = userPhoneWidth * myWidth / myPhoneWith
gridView.setHorizontalSpacing((userPhoneWidth+3) * 最大格子数 * myWidth / myPhoneWith); //采用GridView.NO_STRETCH 后设置间距
6,为什么我 点击文字下面的部分 无法执行 listView 的 item 点击事件?
答:典型的事件阻断,针对这种的解决方法,百度上面大把解决方法。我这里不罗嗦。
最终,我项目的 ListView 嵌套 GridView 后的效果是满足上述所有想要的效果。
以上是关于在android app中的gridview里面这么添加checkbox?的主要内容,如果未能解决你的问题,请参考以下文章
android listview里面能嵌套gridview吗
Android 点击ListView(或GridView)的一个item,使其里面textview变色,点击另一个这个恢复原来颜色