位置: 编程技术 - 正文

Android快速自定义控件+实战演示(三)完整键盘和组合回调!(android 自定义)

编辑:rootadmin

推荐整理分享Android快速自定义控件+实战演示(三)完整键盘和组合回调!(android 自定义),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android 自定义view三个方法,android 自定义view三个方法,安卓自定义快捷键,android自定义loading,安卓怎么自动化,android 自定义,android 自动操作,android 自定义,内容如对您有帮助,希望把文章链接给更多的朋友!

此文接着《Android快速自定义控件+实战演示(二)组合自定义view+回调》继续讲解。

这一节会提供的知识点: 1.如何把之前做好的单一控件组合成一个完整的键盘控件 2.如何在新的键盘控件里进行回调操作,使得能够选中点击某个数字/字母时,进行相关操作(比如打印出来)

回顾一下项目目标

我们要实现一种用在机顶盒端的自定义键盘,效果图如下

在上一节,我们已经实现了单个自定义按键的切换,现在就是通过布局,把它们排列成九宫格(如果包括最下面一行应该是十二宫格)就可以了。

自定义键盘

看了前两节教程,现在是不是觉得自定义控件超简单的。

自定义布局

首先取名custom_keyboard.xml,因为按键与按键之间有重叠的部分(所有按键都以圆盘形式展开的话,可发现有重叠),我用了RelativeLayout,所以自定义view的时候继承RelativeLayout。

自定义View类

新建一个类,名为CustomKeyboard.java继承RelativeLayout。 依旧在所有构造方法里加上我们的新方法load(),在load()方法里初始化布局(inflateLayout()),UI(initUI())和数据(initData())。 在布局里引入custom_keyboard.xml。

在initUI()里将所有的按键获取到,包括清空和删除按钮。

因为键盘的ABC…以及数字排列都是固定的,我们把数据以数组的格式存在custom_keyboard_arrays.xml里面

然后在设置数据的时候,一一对应。

这一段我个人都觉得看得非常冗余,要是能优化一下,弄成一个循环就好了!(如果你有好的想法,欢迎提出来哦!)

运行,基本界面就出来了。

监听按键响应事件(组合回调)Android快速自定义控件+实战演示(三)完整键盘和组合回调!(android 自定义)

响应的事件比如字母、数字按OK键就打印相应字符,删除和清除按OK键就删除一个字符或者清空所有字符。

分析:点击某个按键的时候,数字按键会先变成圆盘按键,然后圆盘按键点击OK键,能够监听点击并得到当前选中的字符;而现在自定义键盘或者更外层,需要能够继续处理该点击事件。故得到当前字符写在圆盘按键类里,并通过回调传值给自定义键盘类,且自定义键盘类能够继续处理点击事件。

下面我用代码来解释说明。

先定义一个监听器类OnDpadCenterListener,定义三个方法分别响应点击字符、删除和清除事件。其中字符要传值给代理(实现者)。

然后,本来的思路应该是,我们接着在圆盘按键类里面的onKey事件里面的分类KEYCODE_DPAD_CENTER里加上如果本类的属性mOnDpadCenterListener 不为 null,就调用onDpadCenter(getSelectedString(())。

但其实我发现,我之前写过一个OnKeyWorkListener,是用来供组合自定义按键回调的,监听了数字按键的OK键和圆盘按键的Back键,而圆盘按键类(CustomCircleKeyboardItem)本身已经有了这个监听器属性,原来只监听了Back键,现在我们就可以加上监听OK键:

然后在组合按键(CustomKeyboardItem)里加上新属性

并且在onDpadCenter(View view)方法里加上新的判断if (view == circleKeyboardItem)如果是圆盘按键被点击OK键,就传给mOnDpadCenterListener去处理:

好了,该写的都写好了,现在只要在哪写好OnDpadCenterListener传进来就可以了。

我同样给了CustomKeyboard类一个OnDpadCenterListener属性,让外层将实现传给CustomKeyboard,再由CustomKeyboard分发给它的子控件。

当其他地方(比如MainActivity)传入监听器OnDpadCenterListener的实现,就可以响应响应按键了。

如果你有任何问题,欢迎留言告诉我。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Android线程交互(Handler+Thread 和 AsyncTask) 为什么需要线程假设需要开发一个联网应用程序,需要从一个网址抓取网页内容,这里读取的网页地址是笔者在本地机器上自己建立的服务器地址。当

Android listView 动态加载数据,下拉加载数据,上拉加载数据 先上效果图本图为上拉到顶部实现数据加载下图为下拉到底部,实现数据加载下面展示代码,其中用到了三方开源控件pulltoRefresh,朋友们可以在网上自行

Android的AsyncTask官方API谷歌翻译版 公共抽象类AsyncTask的扩展对象的java.lang.Object↳android.os.AsyncTaskPARAMS,进展,结果类概述AsyncTask的正确实现,易于使用的用户界面线程。此类允许执行后

标签: android 自定义

本文链接地址:https://www.jiuchutong.com/biancheng/371029.html 转载请保留说明!

上一篇:Android自定义捕获Application全局异常(android 自定义)

下一篇:Android线程交互(Handler+Thread 和 AsyncTask)(android线程间通信的几种方法)

  • 小规模首次申请发票张数
  • 进项税额转出忘记填在申报表里
  • 年初数和年末数审计报告不一致
  • 企业筹建期间开办费计入什么科目
  • 现金预算包括哪些内容,来源是什么
  • 子公司给总公司开发票
  • 货款为现金如何做记账账款凭证?
  • 企业所得税负数会计分录
  • 企业年报资产状况信息可以不填吗
  • 劳务派遣服务用简易计税方法吗
  • 288000元大写怎么写
  • 回单是会计还是出纳职责
  • 个税所得期和所得税区别
  • 其他综合收益的含义
  • 月销售额未超过10万的免征税怎么算
  • 建筑服务预交税款怎么计算的
  • 企业购房时支付的房租
  • 结转成本是否要等货物卖出后
  • 增值税开票系统客服电话
  • 固定资产减值测试时预计其未来现金流量不应考虑的因素
  • 公司向银行贷款利息是多少
  • 城市生活垃圾处理方法
  • 装win7ahci
  • 原材料赔偿会计分录
  • 企业购入旧设备怎么入账
  • 销售使用过的固定资产可以开专票吗
  • 公允价值计量转成本法 同一控制
  • php修改sql语句
  • 有哪些常见的不可数名词英语
  • 企业销售商品怎么做分录
  • 普通发票作废后能取消作废吗
  • 固定资产折旧的计算方法
  • 报销差旅费的会计分录为什么是其他应收款
  • 2021前端面试题校招
  • php中实现文件上传需要用到哪几个函数
  • vue 父组件调用子组件效果
  • php上传不了文件
  • 其他综合收益什么情况下转入留存收益
  • 个体工商户开票是企业还是个人
  • sql server 2008 新建数据库
  • sql server sql文件
  • 个体工商户生产经营所得税税率表
  • 资产减值损失的定义
  • 应付职工薪酬的账务处理
  • 普票不能抵扣为什么有税率
  • 冲销坏账怎么做分录
  • 净资产利润率的公式是什么
  • 建筑施工企业如何预缴增值税税款
  • 增值税附加税需要写进合同吗
  • 外购商品用于促销能抵扣吗
  • 员工用自己的钱买的材料如何做账
  • 一般纳税人提供劳务税率是多少
  • 发票右上角打印缺数字
  • 开来发票没有付款可以进入费用吗?
  • 接受捐赠的固定资产计入什么科目
  • 非营利组织会计科目账务处理
  • win7激活怎么关闭
  • Win7旗舰版系统文件名称
  • win8的应用商店
  • Fedora Core 5.0 安装教程,菜鸟图文教程(linux text)
  • freebsd ip配置
  • linux里top
  • win 8.1 preview ISO镜像安装方法简易教程
  • win10打开软件提示允许此应用对你设备进行更改
  • 微软警告:64位Win7系统或无法安装KB3033929补丁更新
  • mac系统怎么共享文件夹
  • oodag.exe - oodag是什么进程 有什么作用
  • windows 8连接vpn设置方法(消费者预览版)
  • unity项目资源
  • linux rpm解压
  • easyui选项卡
  • linux怎么全盘备份
  • android+
  • javascript中select下拉框的用法总结
  • javascript面向对象编程指南第三版
  • 个人房屋出租给公司怎么开发票
  • 河北电子税务局手机app
  • 如何查询企业税务情况
  • 苹果官网手机号码无效
  • 利润表中所得税费用包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设