开发日记(5) 我们如何让EditText的光标消失呢?

2023-11-04

  很多日子没有分享文章,赶项目呢,3人5项目,好烦啊!

  正题,这是分享的,原文章:http://www.cnblogs.com/yejiurui/archive/2013/01/02/2841945.html

 

  在我们的应用中,有时候一进入一个页面, EditText默认就会自动获取焦点。弹出输入法框,用户体验很不好,

那么如何取消这个默认行为呢?

ps:这篇文字是一年前写的,现在有网友再问这个问题,我进行重新编辑--2014.05.07,目前有更好的办法,第一种方法局限性很强,大家可以使用第二种方法

 

第一种方法:.在网上找了好久,有点监听软键盘事件的方法,有调用 clearFouse()方法,但是测试了都不行!在对应的 xml中也找不到相应的属性可以关闭这个默认行为。

后来研究了一下,在其父控件下,添加如下的属性,就可以完美解决:

android:focusable="true"  
android:focusableInTouchMode="true"

<LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
         android:focusable
="true" android:focusableInTouchMode="true"
        >
        
        <EditText 
            android:id="@+id/et_enter_msg_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            />
        
        <Button 
            android:id="@+id/sent"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/send"
            />
        
        
    </LinearLayout>

第二种方法:直接关闭输入法
private void closeInputMethod() {
    InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    boolean isOpen = imm.isActive();
    if (isOpen) {
        // imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);//没有显示则显示
        imm.hideSoftInputFromWindow(mobile_topup_num.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
    }
}

 调用这个方法体就行了,具体if语句里面的几个参数,我就借用一个网友的日志来写把(在此感谢)


1、方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示)
  
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS); 
  
2、方法二(view为接受软键盘输入的视图,SHOW_FORCED表示强制显示)
  
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED); 
[java] view plaincopy
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //强制隐藏键盘 
 
3、调用隐藏系统默认的输入法
  
((InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(WidgetSearchActivity.this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);  (WidgetSearchActivity是当前的Activity) 
 
4、获取输入法打开的状态
  
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); 
boolean isOpen=imm.isActive();//isOpen若返回true,则表示输入法打开  

希望有帮助!谢谢观看!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开发日记(5) 我们如何让EditText的光标消失呢? 的相关文章

  • Android自定义搜索框(EditText)的搜索功能实现,过滤ListView

    实现自定义搜索框 xff08 实际上就是一个EditText xff09 xff1a lt RelativeLayout android id 61 34 64 43 id music search rl 34 android layout
  • Android EditText 手机号344格式化输入的最佳实现

    PhoneTextWatcher 手机号格式化监听器 xff0c 支持普通输入 删除 xff0c 中间输入 删除 xff0c 在任意位置下黏贴 剪贴多个数字等多种交互场景 目前支持的手机号格式为 3 4 4 分隔符可以自定义 Preview
  • Android&Kotlin——EditText遇到类型不匹配错误

    前言 最近一直使用Kotlin开发Android应用 xff0c 今天刚好遇到一个关于EditText的错误 xff0c 记录一下 报错详情 Type mismatch inferred type is String but Editabl
  • Android EditText最大字数限制并提示

    public class MaxTextLengthFilter implements InputFilter private int mMaxLength 构造方法中传入最多能输入的字数 public MaxTextLengthFilte
  • Android Studio一直Waiting for build to finish

    今天安卓的gradle文件出现问题 所以将C Users Administrator gradle删除 接下来出现下图的问题 这是由于安卓缺少gradle文件 图片来自https blog csdn net Hanghang article
  • 安卓开发 Fragment的简单使用与解析

    1 Fragment的简介 Fragment是Android3 0以后引入的新的api 为了适配大屏的平板 在普通手机开发的过程中 使用Fragment能实现一个界面的多次使用 能加快效率 Fragment可以被认为是Activity界面的
  • EditText TextWatch监听简单使用

    TextWatch 接口方法如下 方法执行顺序 beforeTextChanged gt onTextChanged gt afterTextChanged new TextWatcher This method is called to
  • 一文看懂Android APK安装的原理

    一文看懂Android APK安装的原理 前言 APK包的构成 安装APK 总结 前言 大家有没有想过一个应用的APK是怎么被安装到安卓手机上的 安装的本质是什么 我们知道 Windows应用程序的安装包是一个可执行的压缩包 安装的过程是把
  • Android开发入门组件(十)——WebView

    今天主要写一下WebView 主要是在安卓应用的页面来加载或者写入网页 是比较常见的一种操作 加载网页 1 加载url 网络或者本地assets文件下的html文件 1 加载网络url webview loadUrl 相应的网址 直接在ac
  • Android.mk 文件语法详解

    0 Android mk简介 Android mk文件用来告知NDK Build 系统关于Source的信息 Android mk将是GNU Makefile的一部分 且将被Build System解析一次或多次 所以 请尽量少的在Andr
  • ADB命令开启和关闭飞行模式,两段式操作方式!!!!

    开启飞行模式 必须要先执行1 再执行2 执行1 adb shell settings put global airplane mode on 1 执行2 adb shell am broadcast a android intent act
  • Andriod Studio EditText 输入框 美化

    对输入框实现以下美化 该显示的结构为 LinearLayout 内部加一个 EditText 图中外部轮廓是LinearLayout 的样式 LinearLayout 部分 在要操作页面的 Design 页面添加一个大小合适的 Linear
  • 安卓开发常用icon/png图样

    安卓开发常用icon png图样 平时开发当中会用到很多png图样 但是自己又不太会做 因此做好的办法就是直接在网上下载下来用了 这里给大家推荐一个比较好用的网站 免费的 有很多好的png可以直接下载下来使用 http www iconar
  • Android Studio快捷开发(常用快捷键)

    本文记录自己常用的快捷开发操作 会持续更新 慢慢补 1 鼠标左键双击选中所点击的部分 2 在句末鼠标左键双击选中该句 3 在 大括号前后鼠标左键双击选中该 大括号包裹的代码段 xml文件中在 lt gt 前后双击也可以选择代码段 4 鼠标点
  • Android Studio一个项目引入另一个项目作为依赖Libary

    声明 本教程不收取任何费用 欢迎转载 尊重作者劳动成果 不得用于商业用途 侵权必究 16年做的项目 因公司是某国企很注意保密 即有了奇葩要求不允许用svn git版本控制工具 所以就有了此篇文章的诞生 下面是我对以前笔记的整理 Androi
  • 安卓开发课程设计报告

    湖南科技大学计算机科学与工程学院 综合实践能力创新实训 安卓开发课程设计报告 题 目 新 闻 客 户 端 学 号 17050103XX 姓 名 白马 完成时间 2019年12月15日 安卓开发 新闻客户端 1 设计要求 1 1 技术平台要求
  • Android EditText设置边框

    Android EditText设置边框 简介 Android应用程序中给EditText设置边框 效果图 快速开始 在res drawable目录下新建样式文件 edit background xml
  • 安卓蓝牙广播大全

    android bluetooth 提供了皆如扫描设备 连接设备以及对设备间的数据传输进行管理的类 这些类对蓝牙设备进行功能性管理 蓝牙模块API提供的应用包括了 扫描其它蓝牙设备 通过查询本地蓝牙适配器来匹配蓝牙设备 建立RFCOMM 无
  • Android获取当前位置的三种方式及其使用方法

    1 GPS定位 2 基站定位 此类位置的获取有赖于手机无线通讯信号 当手机处在信号覆盖范围内 手机可以获得该区域 即通讯术语中的 小区 的识别号 因为这些识别号是惟一的 因此可以将识别号和地理坐标对应起来 因此根据识别号就可以知道地理位置
  • 【已解决】mysql报错error: Found option without preceding group in config file: D:\mysql-5.7.25-win32\my.ini

    之前mysql数据库出现问题 因此卸载重安顺便写个教程 顺便给大家一个小建议 如果软件出现什么莫名其妙的错误 半个小时都没有解决 不如直接重装 因为你不知道哪里出了问题 重装比找出问题简单多了 mysql从官网下载安装包直接解压即可 注意最

随机推荐