登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

Android通过一行代码实现软键盘与EditText的交互

[复制链接]
来自: littleRed 分类: Android精品源码 上传时间: 2019-1-24 11:09:54
Tag:
立即下载
收藏

项目介绍:

介绍 : 有一个很常见的需求,就是页面中软键盘打开时,希望能点击屏幕其他的任何位置,就能把软键盘给隐藏掉.
比如登录, 注册之类的常见页面.
在实际开发中,很多大佬通过其他控件的点击事件,在onclick方法中调用软键盘的隐藏方法.
在页面复杂的时候,要实现的onclick方法会很多,甚至还会有逻辑处理冲突的情况.这样做就显得非常不友好.

方式一 继承方式
原理 : 怎样封装成一行代码实现,就是重写Activity的dispatchTouchEvent(MotionEvent ev)方法,全局监听触摸事件, 当点击的页面时,发现如果焦点在EditView上,就把软键盘隐藏,否则就不做处理.
使用: 只要对应的页面 重写下面一个方法,改变return的返回值即可
   @Override   public int[] hideSoftByEditViewIds() {       return 传入页面EditText的id[]   }
如果要对某些控件进行过滤 ,可以重写
   @Override public View[] filterViewByIds() {        return 传入要过滤的View[] }方式二 proxy链式调用(由jiiiiiin提供)      try {            mActivityKeyBoardProxy = ActivityKeyBoardProxyBuild.getInstance()                    .withActivity(this)                    .withHideSoftByEditViewIds(new int[]{R.id.et_phone, R.id.et_check_code, R.id.et_city_code})                    .withFilterViewByIds(new View[]{mBtnCode})                    .withOnHideInputForceListener(new ActivityKeyBoardProxy.OnHideInputForceListener() {                        @Override                        public void onHideInputForce(MotionEvent motionEvent) {                            Log.d(TAG, "隐藏了系统键盘");                        }                    })                    .build();        } catch (Exception e) {            e.printStackTrace();            Log.e(TAG, e.getMessage());        }


相关源码推荐:

我来说两句
所有评论(34)
柠檬lemon 2019-1-24 11:20:56
支持楼主,支持安卓巴士!
回复
A5下载 2019-1-24 11:24:56
淡定,淡定,淡定……
回复
莫应有道 2019-1-24 11:25:39
楼主是好人,回个帖会有安币吗?
回复
Yf8546 2019-1-24 11:38:24
不错不错,楼主辛苦了。。。
回复
小小码农number1 2019-1-24 11:49:51
淡定,淡定,淡定……
回复
rebecca 2019-1-24 11:51:12
支持楼主,支持安卓巴士!
回复
einnius2012 2019-1-24 12:06:57
帮帮顶顶!!
回复
12345下一页
上传代码
查看数:685 收藏数:13 下载数:27 点赞数:1
状态:已购或VIP 售价:15(原价:15)金钱 下载权限:初级码农 
代码贡献英雄榜
用户名 下载数
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,769657487

如何获得代码达人称号

如何成为签约作者

联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表