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

使editText失去焦点,而上一个editText在单击backpress时获得焦点

要使一个EditText失去焦点,可以使用clearFocus()方法。该方法将取消EditText的焦点状态,使其不再接收用户输入。

在单击backpress时,将上一个EditText获得焦点,可以通过以下步骤实现:

  1. 在Activity或Fragment中,定义一个全局变量来保存上一个EditText的引用,例如prevEditText。
  2. 在当前EditText的onFocusChangeListener中,监听焦点变化事件。当焦点从当前EditText转移到其他View时,将prevEditText设置为当前EditText的引用。
  3. 在Activity或Fragment的onBackPressed()方法中,重写返回键的逻辑。在该方法中,调用prevEditText的requestFocus()方法,使其获得焦点。

下面是一个示例代码:

代码语言:txt
复制
// 在Activity或Fragment中定义全局变量
private EditText prevEditText;

// 在当前EditText的onFocusChangeListener中监听焦点变化事件
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
    @Override
    public void onFocusChange(View v, boolean hasFocus) {
        if (!hasFocus) {
            // 当焦点从当前EditText转移到其他View时,将prevEditText设置为当前EditText的引用
            prevEditText = (EditText) v;
        }
    }
});

// 重写返回键的逻辑
@Override
public void onBackPressed() {
    if (prevEditText != null) {
        // 调用prevEditText的requestFocus()方法,使其获得焦点
        prevEditText.requestFocus();
    } else {
        super.onBackPressed();
    }
}

这样,当用户在当前EditText输入完成后,失去焦点时,prevEditText将保存上一个EditText的引用。在单击返回键时,prevEditText将重新获得焦点,以便用户可以继续编辑上一个EditText的内容。

请注意,以上代码仅为示例,具体实现可能根据你的项目结构和需求略有不同。

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

相关·内容

关于RecyclerView中嵌套EditText引发的问题总结

1.数据错乱 最近在开发一个基于RecycelrView的编辑器, Recyclerview中包含Edittext在滚动时会发生数据混乱的问题,之所以数据混乱就是因为Recyclerview的复用导致的...处理方式为: 在onBindViewHolder中通过在适当的时机添加或移除Edittext的TextChangedListener来处理数据错乱的问题。...这个适当的时机就是选在Edittext获得焦点的时候添加监听器,失去焦点的时候再移除监听器,这样可以保证数据的正确性。...关于RecyclerView嵌套EditText,唤起键盘时被遮挡 修改前: 修改后: window.decorView.viewTreeObserver.addOnGlobalLayoutListener...被软盘遮挡和键盘弹出布局不上移 关于RecyclerView中包含Edittext的问题的几种解决方法

2.3K00
  • android studio输出文字_androiditem长按删除

    用EditText 实现 textView 长按复制效果,edittexttextview 首先 EditText 是集成 TextView 的 我们直接将?...EditText 设置为不可编辑来实现 其中重点为: android:background=”@null”//背景设为null,去掉editText下划线 android:textCursorDrawable...没有获取到焦点 有可能为父控件将焦点截获了 其父控件 会有一个方法 descendantFocusability beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants...:viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点 应该可以解决 http://www.dengb.com...长按复制效果,edittexttextview 首先 EditText 是集成 TextView 的 我们直接将?

    57710

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

    我们有时候的需求时,EditText 在不需要的时候,无法点击,或者取消它的默认焦点。 我们先看看通用解决方法。...而触屏手机,我们只需要对应用点击一次,即可,无需焦点。也就是会所焦点是为了标记你目前选中的位置的。而这个在日历中却是有用的。...afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点 代码处 visable.setDescendantFocusability...(FOCUS_AFTER_DESCENDANTS); 问题定义:比如我们有EditText,由一个switch控制,当switch关闭时,editText可以输入,有焦点,否则无法点击,无焦点。...总结一下,也就是我们需要在父布局处添加 触控模式为true,即就是android:focusableInTouchMode="true",这样当清除焦点的时候,就会将焦点赋给父布局,而不是重置到第一个EditText

    1.2K20

    你从未见过的EditText属性详解

    --和微信需要登录时一样,在文本框中提示的扣扣号,邮箱--> android:textColorHint="#95A1AA" 2.获得焦点后全选组件内所有文本内容 android:selectAllOnFocus="true" 3.限制 EditText输入类型 EditText...--设置当文字过长时,该控件该怎样显示,例如设置以下值:"start"省略号显示在开头,"end"省略号显示在结尾,"middle"省略号显示在中间,"marquee"以跑马灯的方式显示(动画横向移动)...常用方法 1.设置焦点,光标的位置 EditText et = (EditText) findViewById(R.id.et_mobile); et.setFocusable(true); et.requestFocus...(); et.setFocusableInTouchMode(true); et.clearFocus();//失去焦点 et.requestFocus();//获取焦点 2.设置默认输入法 et.setInputType

    3.3K10

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

    而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到的一个问题就是当进入一个具有EditText的界面时键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘...比如某个视图层次下的根视图ROOT下有A,B,C三个子视图,而B下面又有B1,B2,B3三个子视图,而这时候B3是具有焦点的子视图,那么在B中的mFocued保存的是B3,而ROOT下的mFocued保存的是...//获取视图是否在触摸模式下获得焦点 public final boolean isFocusableInTouchMode() 因此在触摸设备下,一个视图要想获得焦点必须要setFocusable...因为默认的EditText是一个可成为焦点的视图,这样根据规则当界面展示时就会成为一个焦点视图从而弹出键盘,这样即使对EditText调用clearFocus也因为规则导致他还是焦点视图。...这样当对EditText调用clearFocus或者对祖先视图调用reqeustFoucs时都会优先让祖先视图获得焦点。

    2.6K20

    Android开发笔记(四十三)点击事件

    常用按钮点击 1、单击事件,主要用于Button和ImageButton控件,布局视图与TextView、ImageView控件用的也比较多。...3、焦点变化事件,主要用于EditText控件。...比如屏幕上有多个EditText输入框,当用户点击某个输入框,则该输入框获得焦点;然后用户再点击另一个输入框,则原输入框失去焦点,当前输入框获得焦点;所有获得焦点与失去焦点的控件,都有条件响应焦点变化事件...列表点击 列表项点击 1、单项选择事件,一般用于Spinner控件,在某个列表元素被选中时触发。...onItemSelected : 列表项被选中时调用 onNothingSelected : 没有选择任何项时调用,该方法一般为空 2、单项点击事件,一般用于ListView控件和GridView控件,在某个元素被点击时触发

    1.4K30

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

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

    1.9K50

    Android富文本开发

    instanceof EditText) { // 光标EditText的上一个view对应的还是文本框EditText }...如果设置为true则表示decode函数不会生成bitmap对象,仅是将图像相关的参数填充到option对象里,这样我们就可以在不生成bitmap而获取到图像的相关参数了。...第二次:将inJustDecodeBounds设置为false再次调用decode函数时就能生成bitmap了。而此时的bitmap已经压缩减小很多了,所以加载到内存中并不会导致OOM。...14.点击图片可以查看大图 编辑状态时,由于图片有空能比较大,在显示在富文本的时候,会裁剪局中显示,也就是图片会显示不全。...对于光标前面的字符串保留,设置给当前获得焦点的EditText(此为分割出来的第一个EditText) 把光标后面的字符串放在新创建的EditText中(此为分割出来的第二个EditText) 在第二个

    8.5K20

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

    功能介绍 2.1 需求场景 对于 EditText来说,一般的需求有: 方便用户因出现输入错误而进行2次输入 标识用户正在填写项 根据具体场景增加一定的UI元素 2.2 功能需求 根据需求场景,得出EditText...特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...EditTEXT的焦点,即是否选中 // setDeleteIconVisible() = 根据传入的是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点

    1.9K30

    Android自定义EditText:手把手教你做一款智能EditText(一键删除、自定义样式)

    功能介绍 2.1 需求场景 对于 EditText来说,一般的需求有: 方便用户因出现输入错误而进行2次输入 标识用户正在填写项 根据具体场景增加一定的UI元素 2.2 功能需求 根据需求场景,得出EditText...特点 对比市面上EditText控件,该控件Super_EditText 的特点是: 3.1 功能实用 一键删除功能 在需求中非常常见,现将其封装后更加方便使用 可自定义样式程度高(比自带的强大 & 方便...EditTEXT的焦点,即是否选中 // setDeleteIconVisible() = 根据传入的是否选中 & 是否有输入来判断是否显示删除图标->>关注1 } @...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点...previouslyFocusedRect); setDeleteIconVisible(focused && length() > 0,focused); // focused = 是否获得焦点

    1.3K30

    Android EditText详解

    前言 很常用的控件EditText(输入框); 和TextView非常类似,最大的区别是:EditText可以接受用户输入。和前面一样,我们不一个个讲属性, 只讲实际应用。那么开始本节内容!...2.获得“焦点”后全选组件内所有文本内容 当我们想在点击输入框获得焦点后,不是将光标移动到文本的开始或者结尾;而是 获取到输入框中所有的文本内容的话!...获得焦点后 选中的是所有文本!...效果图: [42111410.gif] 3.限制EditText输入类型 有时我们可能需要对输入的数据进行限制,比如输入电话号码的时候,你输入了一串字母,这 显然是不符合我们预期的,而限制输入类型可以通过...比如限制只能为电话号码,密码(textPassword): EditText android:layout_width="fill_parent" android

    1.8K20

    Android点击其他地方隐藏键盘

    Android点击其他地方隐藏键盘 1.第一种:隐藏页面一进来EditText获取焦点就弹出软键盘 在oncreate()里调用如下方法即可 /** * 隐藏软键盘 */...获取焦点已经弹起软键盘,点击其他空白区域隐藏软键盘 此方法可以写到BaseActivity中其他Activity就相应的也会继承 @Override public boolean dispatchTouchEvent...所在坐标和用户点击的坐标相对比, * 来判断是否隐藏键盘,因为当用户点击EditText时则不能隐藏 */ private boolean isShouldHideKeyboard...return false; } else { return true; } } // 如果焦点不是...EditText则忽略,这个发生在视图刚绘制完,第一个焦点不在EditText上,和用户用轨迹球选择其他的焦点 return false; } /** * 获取

    3.3K10

    EditText 集锦 - 开发中常用的用法及遇到的各种坑

    前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。...如设置成1.5倍. ---- 输入法相关 设置默认输入法 有时候为了提高用户体验,在弹出输入法时需要设置默认的输入状态,比如单词应用弹出输入法时,输入法最好是在英文输入状态下。...如果是字典应用,弹出输入法时最好是在中文输入状态下,Android 并没有提供设置默认的输入状态的接口,但我们可以通过如下方法一样能够达到想要的效果: 默认中文: mEditText.setInputType...默认获取焦点 EditText 默认获取焦点,并弹出键盘,这本来是默认的行为。..., 0); } 取消 EditText 默认获取焦点的行为 在EditText的父级控件中找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode

    2.3K20

    android 系统浏览器 源码-Android 最最最简单的浏览器代码

    首先是我们的xml   代码简单,就是里面再套一个,加上一个和button。下面就是一个。里面有些属性虽然我写了android 系统浏览器 源码,但是没感觉出来用处。:="true"。...:="true"这个呢就是获取焦点android 系统浏览器 源码,便于后面点可以全选。   最后是重点啦,看看Java的代码。   ...//设置到webView中去 } }); //覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使网页可以再...public boolean shouldOverrideUrlLoading(WebView view, String url) { //返回值是true的时候控制网页在WebView...text.setText(webView.getUrl()); //实时显示当前网址 text.requestFocus(); //把输入焦点放在调用这个方法的控件上

    1.4K10
    领券