android 之Fragment 没有onKeyDown 监听与editText 输入后焦点问题
2017-05-13 11:50
621 查看
问题概述
最近在做公司的测试程序,期间遇到在fragment 里不能监听到按键信息(公司硬件不是纯安卓手机,是PDA,有30个按键)解决过程
(一)
先在Fragment里写个自己的静态onKeyDown (实际上不静态也可),再从Activity 里的onKeyDown 里用Fragment 传进来,这个方法可行,但是如果你的Fragment 里的onKeyDown还要做其他处理就不行了,因为当按键传进来的时候Fragment 里很多数据没有初始化,造成了很多空指针的麻烦,所以这个方法放弃了。。(二)
网上找的一个获取焦点的方法可行,具体看下代码private void getFocus() { getView().setFocusable(true); getView().setFocusableInTouchMode(true); getView().requestFocus(); getView().setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == 139) { if (event.getRepeatCount() == 0) { Log.e(TAG, "onKey: "); read(); return true; } } return false; } }); }
通过这个获取后就可触发fragment 里的其他数据处理,同时又有一个问题是每次按下这个139按键会执行两次这个getFocus()方法,至今没找到原因(有没有大神帮忙解释下),只能用奇偶来执行那个read();方法了。到这里fragment 的按键监听算是搞定了,其中还一个小插曲就是期间如果这个fragment 里有editText 要编辑的话就会抢走焦点,其实很好办,就是重新获取一下就好了,下面贴个代码
et_interval_15693_read.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Log.e(TAG, "onTextChanged: 监听到et输入 " ); getFocus(); } @Override public void afterTextChanged(Editable s) { } });
这几个重写的方法就不介绍了,自己BD一下就可。目前没发现bug,大家有需要的可以参考模仿一下,如果有不对的希望可以指出来,沟通最有利!
相关文章推荐
- android Fragment获取EditText 从软键盘中输入下一个action的监听
- Android EditText 获得输入焦点 以及requestfocus()失效的问题
- Android开发之ListView+EditText-要命的焦点和软键盘问题解决办法
- Android EditText不弹出输入法总结,焦点问题的总结
- 在Android开发中如何移除EditText上的输入焦点
- 【Android】ListView中EditText焦点问题
- Android EditText截获与监听输入事件
- Android的EditText自动获取焦点并弹出输入法问题
- android的edittext输入内容控制问题
- 【Android 界面效果12】EditText中的多行输入问题
- android 监听EditText输入字符长度
- Android移除EditText上的输入焦点实例
- android TextWatcher 监听textview和edittext的文字输入改变
- 【转】Android EditText截获与监听输入事件
- Android的EditText自动获取焦点并弹出输入法问题
- Android EditText不弹出输入法总结,焦点问题的总结
- Android EditText截获与监听输入事件
- Android EditText的输入监听,输入字符的动态获取
- 在Android开发中如何移除EditText上的输入焦点
- Android EditText不弹出输入法总结,焦点问题的总结