有很多类似控件的时候点击事件的处理
来源:互联网 发布:联想e41指纹识别软件 编辑:程序博客网 时间:2024/04/27 20:21
最近总想静静地写点什么东西,肚子里又没什么墨水,写不出什么小说啊什么的,又想整理下自己以前写过的代码,学习到的干货,以前的这些东西都总结在印象笔记里,那我就把这些笔记都整理成博客好了,也希望各位大神们看到了能在评论里给我指出一些存在的问题,
前段时间碰到一个需求,一个界面上有很多标签种类,然后点击各自的标签,进入相同activity,activity里调用各自标签下的id的网络请求显示数据,见效果图。
对此,有一个问题就困扰到我了,如何做到,简单,清楚的写清楚这么多按钮的点击事件,一个一个setOnClickListener?显然不可能,因为我所有的点击事件里的内容都是基本完全一样的,除了一个intent传递给新的activity的标签ID不一样而已,而且之后标签的修改代码也不好维护。我也想到了自定义view,在自定义view里写清楚它的点击事件,然后我在自定义属性添加标签的text,代码里获取到text,然后进行判断标签对应的id是多少。这个操作性是可以的,但是代码很乱,而且,你判断标签的text还要写个枚举,麻烦而且性能上就比较影响了!
之后思考了半天,想到了通过tag的形式,标签对应的id正好就是tag,代码量少,而且扩展性强,就算标签变多或者减少修改都超级方便,首先感谢hongyang的流式布局,我通过流式布局在xml定义了多个textView,定义了样式与字体等。界面效果就已经出来了,之后就是点击事件的处理了。首先,我先在activity上初始化各个控件,进行findviewById处理。之后就是重点了:
meibai.setTag(new RankingTag(RankingTag.BUTTON_TYPE_A)); meibai.setOnClickListener(this); baoshi.setTag(new RankingTag(RankingTag.BUTTON_TYPE_B)); baoshi.setOnClickListener(this); xiufu.setTag(new RankingTag(RankingTag.BUTTON_TYPE_C)); xiufu.setOnClickListener(this); qujiaozhi.setTag(new RankingTag(RankingTag.BUTTON_TYPE_D)); qujiaozhi.setOnClickListener(this); qudou.setTag(new RankingTag(RankingTag.BUTTON_TYPE_E)); qudou.setOnClickListener(this);//等等……
public class RankingTag { public static final int BUTTON_TYPE_A = 1; public static final int BUTTON_TYPE_B = 2; public static final int BUTTON_TYPE_C = 3; public static final int BUTTON_TYPE_D = 4; public static final int BUTTON_TYPE_E = 5; public static final int BUTTON_TYPE_F = 6; public static final int BUTTON_TYPE_G = 7; public static final int BUTTON_TYPE_H = 8; public static final int BUTTON_TYPE_I = 9; public static final int BUTTON_TYPE_J = 10; //……等等 public final int mType; public RankingTag(int type) { mType = type; }}这样子处理以后在onClick事件里面就超级简单了:
@Override public void onClick(View view) { RankingTag type = (RankingTag)view.getTag(); effectId = type.mType; Intent intent = new Intent(getActivity(), EffectRankingActivity.class); intent.putExtra("effectId",effectId); startActivity(intent); }轻松愉快,方便,就这样解决了。当然如果有更好更方便的方法,大神告诉我!!!
0 0
- 有很多类似控件的时候点击事件的处理
- button点击事件出来 onclicklistener 有一堆的时候怎么来处理 简化程序
- 很多控件的消息处理
- Python中有很多类似__**__的函数
- Android如何处理列表控件的item同时点击事件
- 人无聊的时候会有很多的想法。。
- Repeater控件的点击事件
- 有点击效果的控件
- 可是他却从没有想过,很多的时候
- 启动Hive的时候有很多WARN和INFO信息
- 很多时候,很多程序员都是这样的......
- listview adapter 控件注册点击事件,点击一个item后有其他item的这个控件响应了事件
- asp.net中的按钮在页面上有验证控件的时候不触发按钮事件
- Andorid 点击按钮事件叠加时候的事件分析。
- 我有特殊的节能技巧,处理事件的时候我会装作四处看风景
- listview中有按钮、图片等需要不同点击处理的控件如何处理
- 实现类似微博@..的点击文字跳转事件 iOS
- 当listview的item的布局中有Button等可点击按钮时,item的点击事件与Button的点击事件处理
- Facade模式——设计模式学习笔记
- 基于opencv的人脸性别识别
- 【leetcode】:Range Sum Query - Immutable
- View的基础知识和Scroller的使用
- lua tutorial 09
- 有很多类似控件的时候点击事件的处理
- http--发送get请求获取网页
- Swift中XMPP的简单使用
- Python学习
- SQL_left join 和from 两个表的区别
- GCD延时加载
- 使用Gson结合泛型类灵活解析JSON数据
- C 简单选择排序
- android注解