android软键盘的隐藏以及Edittext的焦点问题
2016-08-02 16:40
531 查看
android在背景切换的时候,我们经常会用到焦点方面的问题,当失去焦点的时候,我们的背景色是一个,有焦点的时候是另一个。
我们可以设置默认状态下的是没有焦点的状态,设置的方法如下所示:
在我们用到edittext的layout的最外层,写这两行代码:
就默认我们的Edittext的初始状态是失去焦点的。
而且我们还可以用代码来控制让Edittextt的控件失去焦点:
这样可以让我们的某个Edittext失去焦点。
这三行代码一起用也可以让我们点击其他控件的时候失去edittext的焦点。具体如何理解本人也没有深入的了解,还望大神不吝赐教。
那么接下来就说一说我们的软键盘方面的相关东西吧:
在你需要的地方这两行代码可以让你将现有的软键盘进行强制隐藏。本人用的时候,是当点击一个按钮的时候触发监听,然后隐藏软键盘。就将上面的两行代码放到的onclick中,大家可以看情况使用。
还有一种隐藏软键盘的情况,是我们进入这个界面的时候,要让我们的软键盘进行默认状态是隐藏的效果。
1. 在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden。
2.让Edittext失去焦点:
如:
3.强制隐藏:
而如果想让我们的activity进入的时候,这个activity中的edittext就默认选中,并且弹出软键盘的话,有一种方法是加一个延长一段时间后再显示,就可以显示我们的软键盘了。而另外一种会比较简单,就是在我们的AndroidMenifest中对应的activity中:
加入这行代码,就会让我们默认初始状态弹出软键盘并且显示。
4.点击Edittext以外部分,隐藏软键盘。
在Edittext的父控件,添加点击事件。然后加入以下代码即可。
关于Edittext 的处理一般针对焦点,默认状态,软键盘等展开,使用的时候可以相互印证,相互理解,会更有帮助。
当你失去焦点的时候,软键盘就不弹出了。当你获取焦点,颜色改变等等。还有设置默认的状态结合使用。
完
我们可以设置默认状态下的是没有焦点的状态,设置的方法如下所示:
在我们用到edittext的layout的最外层,写这两行代码:
android:focusable="true" android:focusableInTouchMode="true"
就默认我们的Edittext的初始状态是失去焦点的。
而且我们还可以用代码来控制让Edittextt的控件失去焦点:
clear_code = (EditText) findViewById(R.id.clear_code);
clear_code.clearFocus();
这样可以让我们的某个Edittext失去焦点。
rela_addc.setFocusable(true); rela_addc.setFocusableInTouchMode(true); rela_addc.requestFocus();
这三行代码一起用也可以让我们点击其他控件的时候失去edittext的焦点。具体如何理解本人也没有深入的了解,还望大神不吝赐教。
那么接下来就说一说我们的软键盘方面的相关东西吧:
InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); im.hideSoftInputFromWindow(getCurrentFocus().getApplicationWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
在你需要的地方这两行代码可以让你将现有的软键盘进行强制隐藏。本人用的时候,是当点击一个按钮的时候触发监听,然后隐藏软键盘。就将上面的两行代码放到的onclick中,大家可以看情况使用。
还有一种隐藏软键盘的情况,是我们进入这个界面的时候,要让我们的软键盘进行默认状态是隐藏的效果。
1. 在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden。
< activity android:name=".Main" android:label="@string/app_name" android:windowSoftInputMode="adjustUnspecified|stateHidden" android:configChanges="orientation|keyboardHidden"> < intent-filter> < action android:name="android.intent.action.MAIN" /> < category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
2.让Edittext失去焦点:
如:
EditText edit=(EditText)findViewById(R.id.edit); edit.clearFocus();
3.强制隐藏:
EditText edit=(EditText)findViewById(R.id.edit); InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(edit.getWindowToken(),0);
而如果想让我们的activity进入的时候,这个activity中的edittext就默认选中,并且弹出软键盘的话,有一种方法是加一个延长一段时间后再显示,就可以显示我们的软键盘了。而另外一种会比较简单,就是在我们的AndroidMenifest中对应的activity中:
<activity android:name=".my.TestAcitivity" android:windowSoftInputMode="adjustResize" />
加入这行代码,就会让我们默认初始状态弹出软键盘并且显示。
4.点击Edittext以外部分,隐藏软键盘。
在Edittext的父控件,添加点击事件。然后加入以下代码即可。
@Override public void onClick(View v) { switch (v.getId()) { case R.id.rela_talk: InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); break; } }
关于Edittext 的处理一般针对焦点,默认状态,软键盘等展开,使用的时候可以相互印证,相互理解,会更有帮助。
当你失去焦点的时候,软键盘就不弹出了。当你获取焦点,颜色改变等等。还有设置默认的状态结合使用。
完
相关文章推荐
- android强制隐藏软键盘以及取消EditText的焦点
- Android:EditText焦点触发布局隐藏以及显示
- [Android]去除EditText自动获得的焦点,解决软键盘弹出问题
- android关于EditText取消默认焦点及触摸其它地方去掉光标隐藏键盘问题
- Android EditText 获得输入焦点 以及requestfocus()失效的问题
- Android点击EditText之外的地方隐藏软键盘同时使EditText失去焦点
- android中的EditText如何屏蔽软键盘以及在屏蔽软键盘弹出其它对话框之类的控件的问题
- listview的edittext如何获得焦点,android 软键盘的显示与隐藏
- Android EditText设置默认不弹出软键盘,点击EditText外部隐藏软键盘,EditText获取焦点时隐藏hint
- android强制隐藏键盘(当edittext获得焦点时不弹出键盘)
- Android EditText不弹出输入法焦点问题的总结
- 【Android开发那点破事】Android EditText不弹出输入法焦点问题
- android edittext 初始不获取焦点 android 键盘隐藏
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- [Android教程]EditText设置/隐藏光标位置、选中文本和获取/清除焦点
- android AlertDialog中EditText无法显示软键盘问题的解决方案
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android EditText不弹出输入法总结,焦点问题的总结
- Android EditText不弹出输入法总结,焦点问题的总结
- 【Android】ListView中EditText焦点问题