首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将可聚焦设置为false后,EditText无法重新获得焦点

是因为设置了不可聚焦属性后,EditText将失去焦点,并且无法再次获取焦点。这是因为可聚焦属性(focusable)决定了一个控件是否可以获取焦点,当将其设置为false时,控件将不再响应焦点事件。

在某些情况下,我们可能需要在特定的条件下将EditText重新设置为可聚焦。为了实现这一目的,可以通过编程的方式来动态改变EditText的可聚焦属性。

以下是一种可能的解决方案:

  1. 在代码中找到对应的EditText控件,可以通过findViewById或者绑定控件的方式获取到EditText对象。
  2. 使用setFocusable方法将EditText的可聚焦属性设置为true,即使它之前被设置为false。

示例代码如下:

代码语言:txt
复制
EditText editText = findViewById(R.id.editText); // 根据实际情况获取EditText对象
editText.setFocusable(true); // 将可聚焦属性设置为true
editText.requestFocus(); // 请求获取焦点

这样,通过将可聚焦属性重新设置为true,并调用requestFocus方法,EditText将能够重新获得焦点。

对于云计算领域,腾讯云提供了一系列相关产品和服务,包括云服务器、云数据库、云存储等。具体可以参考腾讯云官方文档:腾讯云产品与服务

请注意,本回答仅供参考,具体实现方式可能因开发环境和需求而异。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android中的视图焦点Focus的详细介绍

而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到的一个问题就是当进入一个具有EditText的界面时键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘...因为清除某个视图的焦点属性时,系统为了保证拥有一个具有焦点的视图,就会再次遍历整个视图树来重新设置具有焦点的视图。...为false)或者父视图不允许自己获取焦点就会返回false表示成为焦点视图失败。...解决的方案是把EditText的一个祖先视图也设置为可获取焦点的视图(setFocusable(true)),并且将这个祖先视图的setDescendantFocusability设置为FOCUS_BEFORE_DESCENDANTS...这样当对EditText调用clearFocus或者对祖先视图调用reqeustFoucs时都会优先让祖先视图获得焦点。

2.6K20

关于EditText屏蔽焦点的问题,及为什么clearFocus()方法失效了?

我们有时候的需求时,EditText 在不需要的时候,无法点击,或者取消它的默认焦点。 我们先看看通用解决方法。...android:focusable与android:focusableInTouchMode 前者针对在键盘下操作的情况,如果设置为true,则键盘上下左右选中,焦点会随之移动。...(FOCUS_AFTER_DESCENDANTS); 问题定义:比如我们有EditText,由一个switch控制,当switch关闭时,editText可以输入,有焦点,否则无法点击,无焦点。...总结一下,也就是我们需要在父布局处添加 触控模式为true,即就是android:focusableInTouchMode="true",这样当清除焦点的时候,就会将焦点赋给父布局,而不是重置到第一个EditText....到了现在,我们可以尝试一下,如果设置第一个输入框focusableInTouchMode为false,那么当你点击了别的输入框,然后点击switch,会发现,焦点会在第二个输入框,而不会在第一个。

1.2K20
  • android studio输出文字_androiditem长按删除

    EditText 设置为不可编辑来实现 其中重点为: android:background=”@null”//背景设为null,去掉editText下划线 android:textCursorDrawable...=”@null”//游标设为null,去掉游标 android:editable=”false”//不可编辑 android:textIsSelectable=”true”//文字内容可选 有时候可能会遇到...无法复制的问题是因为: EditText没有获取到焦点 有可能为父控件将焦点截获了 其父控件 会有一个方法 descendantFocusability beforeDescendants:viewgroup...会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点...EditText 设置为不可编辑来实现 其中重点为:… 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

    57710

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    由这张动图可以发现,支付密码输入框至少需要完成以下功能: 1、一开始边框是灰色的,获得焦点后边框变蓝色; 2、输入框一共六个方格,每个方格之间以竖线隔开; 3、每个方格只显示一个密码字符,且字符位于方格中央...对于处理密码输入的EditText来说,需要实现以下几项操作: 1、把默认的下划线背景替换为圆角背景,且支持在获得焦点时高亮显示; 2、屏蔽输入光标,可调用setCursorVisible方法设置为不可见...; 3、把输入文字变成不可见,这里建议把文字颜色设为透明,而不是把文字大小设为0,因为若将大小设为0就无法自适应高度; 4、设置输入字符串的长度为6,设置长度操作可调用setFilters方法; 5、添加文本变更监听器...其次,对于支付密码输入框的焦点获得问题,因为该输入框内部集成了EditText,所以不管是给输入框注册点击事件还是触摸事件,手势焦点都会被内部的EditText所抢占,使得密码输入框反而不会响应点击和触摸事件...onInterceptTouchEvent(MotionEvent ev) { return true; } 2、给支付密码输入框以及其它编辑框控件注册触摸监听器,并对触摸动作进行处理,在触摸密码输入框时强行使之获得焦点

    1.9K30

    Android Focusable in Touch Mode 介绍

    当我们用手触摸屏幕选中内容后,会进入 Touch Mode; 但是当我们用触摸球左右移动(按下遥控器方向键也一样)时,就会离开 Touch Mode; 听起来似乎很简单,但是一个控件还有其他状态,当这些状态切换时...EditText 默认 focusableInTouchMode 为 true,因此我们点击后它才能获取焦点,当我们设置 EditText focusableInTouchMode 为 false 时,...点击后获取不到焦点,也就无法输入。...当我们设置 ListView 的 focusableInTouchMode 为 false 时,它的 item 也无法获取不到焦点,这在有的场景下会有用处。...由于设置了这个属性后会引起正常交互不一致的效果,所以官方建议我们保守地使用这个属性,在你确定要用它之前最好三思而后行。

    1.7K60

    Android富文本开发

    如果当前获取焦点的EditText为空,直接在EditText下方插入图片,并且插入空的EditText 代码思路如下所示/** * 插入一张图片 * @param imagePath...设置文本选中内容加粗模式,代码如下所示,可以看到这里只需要传递一个lastFocusEdit对象即可,这个对象是最近被聚焦的EditText。...第二次:将inJustDecodeBounds设置为false再次调用decode函数时就能生成bitmap了。而此时的bitmap已经压缩减小很多了,所以加载到内存中并不会导致OOM。...对于光标前面的字符串保留,设置给当前获得焦点的EditText(此为分割出来的第一个EditText) 把光标后面的字符串放在新创建的EditText中(此为分割出来的第二个EditText) 在第二个...,ps非直接父布局没有效果) 在父布局最顶部添加一个高度为0的EditText,抢了焦点但不展示; 软键盘遮挡界面的问题 当界面中有输入框,需要弹起软键盘输入信息的时候,软键盘可能遮挡部分布局,更有甚者

    8.5K20

    Android开发常用的知识点

    " //密码输完后 把焦点放到登录按钮上 android:imeOptions="actionDone" android:nextFocusForward="@+id/login_button" 但是这样并没有点击登录...stateAlwaysHidden 当该Activity主窗口获取焦点时,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateAlwaysVisible 当该Activity主窗口获取焦点时,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...相反,当前窗口的内容将自动移动以便当前焦点从不被键盘覆盖和用户能总是看到输入内容的部分。这个通常是不期望比调整大小,因为用户可能关闭软键盘以便获得与被覆盖内容的交互操作。...android:ellipsize="marquee" //获取焦点 android:focusable="true" //可以通过toucth来获得focus android:focusableInTouchMode

    2.6K10

    Android必知必会-Fragment监听返回键事件

    如果移动端访问不佳,请尝试 Github版<–点击左侧 背景 项目要求用户注册成功后进入修改个人资料的页面,且不允许返回到上一个页面,资料修改完成后结束当前页面,进入APP主页。...中找到的一个解决方案,但是在使用时,由于Fragment页面里可能有其他能获取焦点的View(例如EditText),会导致监听失效,点击返回键会返回到上个页面。...更完善的解决方案: 除了上面的代码,我们需要对可以获取焦点的View的setOnKeyListener进行处理,这里以一个EditText为例: //private EditText nickname;...imm.hideSoftInputFromWindow(nickname.getWindowToken(), 0); //使得根View重新获取焦点...,以监听返回键 getFocus(); } return false; }

    1.9K50

    Android EditText详解

    2.获得“焦点”后全选组件内所有文本内容 当我们想在点击输入框获得焦点后,不是将光标移动到文本的开始或者结尾;而是 获取到输入框中所有的文本内容的话!...这个时候我们可以使用selectAllOnFocus属性 android:selectAllOnFocus="true" 比如下面的效果图: 第一个是设置了该属性的,第二个是没设置该属性的,设置为true...的EditText获得焦点后 选中的是所有文本!...另外很多时候我们可能要限制EditText只允许单行输入,而且不会滚动,比如上面的登陆界面的 例子,我们只需要设置 android:singleLine="true" 即可实现单行输入不换行 5.设置文字间隔...//设置字与字的垂直间隔 另外EditText还为我们提供了设置英文字母大写类型的属性:android:capitalize 默认none,提供了三个可选值: sentences:仅第一个字母大写 words

    1.8K20

    Android自定义EditText:手把手教你做一款含一键删除&自定义样式的SuperEditText

    特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点...// 若不想在某个地方显示,则设置为null // 另外一个相似的方法:setCompoundDrawablesWithIntrinsicBounds(Drawable...// 若不想在某个地方显示,则设置为null // 另外一个相似的方法:setCompoundDrawablesWithIntrinsicBounds(Drawable...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点

    1.9K30

    强大的提示控件TextInputLayout使用以及源码分析

    } @Override public void afterTextChanged(Editable s) { // 文字改变后回调...或者AutoCompleteTextView,以下几个属性和方法需要声明一下: app:hintAnimationEnabled="true"可以开启动画,这个为true时,获得焦点的时候hint提示问题会动画地移动上去...设置文本变化的监听,在文本改变之前,正在改变的时候都可以做相应的逻辑处理,往下看有更改EditText的Margin的方法 private LayoutParams updateEditTextMargin...之中肯定应该会有一个添加错误提示信息的方法,在这里我们找到了,同时这里的代码也是值得我们进行学习的,只有当用户设置错误提示为真的时候,才会new一个TextView,这样是比较省性能的,接下来是setError...TextInputLayout,同时new了一个TextPaint来进行文本的绘制,然后是new出来3个矩形区域,mCollapsedBounds:输入框处于折叠状态下的矩形区域,mExpandedBounds:提示框获得焦点

    1.8K50
    领券