Android自定义按钮功能的一种实现思路
来源:互联网 发布:mac专柜口红价格多少啊 编辑:程序博客网 时间:2024/05/22 03:12
最近看到一个小工具,可以实现自定义按钮功能,觉得挺有趣的,于是就思考了下实现思路。
现在想到的一种思路是:
1.所有功能对应一个int型数值标记
2.用一个map来把按钮的标示和按钮当前的功能联系起来,功能与1里面给出的对应
3.点击按钮时,根据按钮标示取得对应的功能数值,然后去执行相应的function
一个简单的例子:
public class OnMainButtonClickListener implements OnClickListener {public static enum enumFuncTag {func_new, func_help,func_reserved};// 保存btn和func的对应关系private Map<Integer, enumFuncTag> mBtnFuncMap = new HashMap<Integer, enumFuncTag>();public OnMainButtonClickListener(Button[] btns) {// 设置默认对应关系for (int j = 0; j < btns.length; j++) {mBtnFuncMap.put(btns[j].getId(), enumFuncTag.func_reserved);}}// 设置对应关系public void setBtnFunc(int btnID, enumFuncTag funcTag) {mBtnFuncMap.put(btnID, funcTag);}// 获取对应关系public enumFuncTag getFuncByBtnID(int btnID) {return mBtnFuncMap.get(btnID);}// 这里有一个map 用于btn和function对应 map有init、set、get// click里先取v.id,然后id去map里找对应func标记// 然后switch执行func@Overridepublic void onClick(View v) {// 根据id获取对应funcint btnID = v.getId();enumFuncTag funcTag = getFuncByBtnID(btnID);LLog.LogI("btnID:"+btnID);LLog.LogI("funcTag:"+funcTag);switch (funcTag) {case func_new:newFile();break;case func_help:help();break;default:reservedFunc();break;}}// func列表public void newFile() {LLog.LogD("newFile");}public void help() {LLog.LogD("help");}public void reservedFunc() {LLog.LogD("reservedFunc");}}
调用:
<span style="white-space:pre"></span>private Button[] mButtons = new Button[3];private OnMainButtonClickListener mBtnClickListener = null;
mButtons[0] = (Button)findViewById(R.id.btn_main_lt);mButtons[1] = (Button)findViewById(R.id.btn_main_ct);mButtons[2] = (Button)findViewById(R.id.btn_main_rt);if (mBtnClickListener == null) {mBtnClickListener = new OnMainButtonClickListener(mButtons);}for (int i = 0; i < mButtons.length; i++) {mButtons[i].setOnClickListener(mBtnClickListener);}mBtnClickListener.setBtnFunc(mButtons[0].getId(), OnMainButtonClickListener.enumFuncTag.func_new);mBtnClickListener.setBtnFunc(mButtons[1].getId(), OnMainButtonClickListener.enumFuncTag.func_help);
0 0
- Android自定义按钮功能的一种实现思路
- Android自定义按钮实现长按功能
- Android自定义按钮实现长按功能
- Android-自定义输入法的功能按钮
- Android-自定义输入法的功能按钮
- Android-自定义输入法的功能按钮
- Android复杂自定义动画的实现思路
- Android一键换肤功能:一种简单的实现
- 安卓换肤的一种实现思路
- Android: 实现表情输入键盘的另外一种思路
- 在Android中实现自定义的按钮
- 按钮功能的实现
- android应用的几种功能导航实现思路
- Android应用之离线功能的实现思路
- 统计在线人员实现的一种思路
- javascript实现换皮肤的一种思路
- 一种注册表沙箱的思路、实现
- 一种实现视差效果的思路
- 工作总结
- 指针初始化为NULL的作用
- UVALive - 4329 Ping pong 数状数组
- Python笔记——break的注意事项
- html5视频播放
- Android自定义按钮功能的一种实现思路
- 树懒_移动开学笔记__day02.1_web_css
- php-preg-1
- [LeetCode]Isomorphic Strings
- Android Studio学习笔记——构建系统
- BTrace实现浅析
- 一个小程序
- binbinyang---百度地图androidAPI Android SDK v3.5.0------------2.定位功能
- Java:输入年份和月份打印出相应的日历表