android在背景切换的时候,我们经常会用到焦点方面的问题,当失去焦点的时候,我们的背景色是一个,有焦点的时候是另一个。

我们可以设置默认状态下的是没有焦点的状态,设置的方法如下所示:

在我们用到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。

< activityandroid: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" />

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中:

    android:name=".my.TestAcitivity"    android:windowSoftInputMode="adjustResize" />

加入这行代码,就会让我们默认初始状态弹出软键盘并且显示。


4.点击Edittext以外部分,隐藏软键盘。


在Edittext的父控件,添加点击事件。然后加入以下代码即可。

@Overridepublic 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 的处理一般针对焦点,默认状态,软键盘等展开,使用的时候可以相互印证,相互理解,会更有帮助。

当你失去焦点的时候,软键盘就不弹出了。当你获取焦点,颜色改变等等。还有设置默认的状态结合使用。

更多相关文章

  1. Android第一行代码读书笔记
  2. 读《第一行代码 第3版》第1章知识点简单总结
  3. Android 动态加载APK--代码安装、获取安装包中的资源及Intent调
  4. Android软键盘的隐藏显示研究
  5. 如何在自己的程序中添加appWidget(附简单代码)
  6. Android两行代码真正杀死你的App
  7. Android代码混淆之混淆规则

随机推荐

  1. 去掉ScrollVIew拉到尽头时再拉的阴影效果
  2. Android中的ClassLoader(PathClassLoader
  3. Android消息机制(一)
  4. Android(安卓)studio配置Gradle的坑
  5. ListView之快速滑块
  6. Android应用程序消息处理机制(Looper、Han
  7. Android studio 3.0 xml无法可视化的解决
  8. Android内存泄漏排查利器LeakCanary
  9. Android开发EditText不自动弹出键盘
  10. android中文开发资料