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

如何在设备旋转时防止edittext焦点回到第一个edittext

在设备旋转时防止EditText焦点回到第一个EditText,可以通过以下步骤实现:

  1. 在AndroidManifest.xml文件中为该Activity添加属性:android:configChanges="keyboardHidden|orientation|screenSize"。这样可以防止Activity在设备旋转时重新创建。
  2. 在Activity的onCreate()方法中,添加以下代码:
代码语言:txt
复制
if (savedInstanceState != null) {
    // 恢复之前保存的焦点状态
    editText.requestFocus();
}

这样可以在Activity重新创建时,将焦点设置到指定的EditText上。

  1. 在Activity的onSaveInstanceState()方法中,保存当前焦点的状态:
代码语言:txt
复制
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("editTextFocus", editText.getId());
}
  1. 在Activity的onRestoreInstanceState()方法中,恢复之前保存的焦点状态:
代码语言:txt
复制
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
    super.onRestoreInstanceState(savedInstanceState);
    int editTextId = savedInstanceState.getInt("editTextFocus");
    if (editTextId != 0) {
        View view = findViewById(editTextId);
        if (view instanceof EditText) {
            view.requestFocus();
        }
    }
}

通过以上步骤,可以在设备旋转时保持EditText的焦点不回到第一个EditText,而是保持在当前焦点的EditText上。

关于腾讯云相关产品,可以推荐使用腾讯云移动推送(https://cloud.tencent.com/product/tpns)来实现消息推送功能,以提升用户体验。

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

相关·内容

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

在非触摸屏设备中接收事件和处理响应的控件是具有焦点(Focused)的控件。一个窗口中一个时间内只能有一个具有焦点的控件。...而在触摸设备上通常默认情况下只有EditText控件才具有焦点,而我们通常会遇到的一个问题就是当进入一个具有EditText的界面键盘就会自动弹出,而且有时候可能无法消失,但需求可能是进入时不弹出键盘...public final boolean isFocusable() 对于触摸设备来说我们可以设置一个视图在被触摸是否可以成为焦点视图。...因为默认的EditText是一个可成为焦点的视图,这样根据规则当界面展示就会成为一个焦点视图从而弹出键盘,这样即使对EditText调用clearFocus也因为规则导致他还是焦点视图。...这样当对EditText调用clearFocus或者对祖先视图调用reqeustFoucs都会优先让祖先视图获得焦点

2.5K20

Android开发常用的知识点

所以可以先判断是否已经为横屏了,如果不是再旋转,不会让用户觉得转的莫名其妙啦!...如果用户旋转设备这屏幕会横竖屏切换 nosensor–忽略物理感应器,这样就不会随着用户旋转设备而更改了(”unspecified”设置除外) 移除 View 的背景色 setBackgroundResource...stateHidden 当用户选择该Activity,软键盘被隐藏——也就是说,当用户确定导航到该Activity,不管他离开的Activity的软键盘是可见还是隐藏都会被隐藏,不过当用户离开一个...stateAlwaysHidden 当该Activity主窗口获取焦点,软键盘总是被隐藏的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。...stateAlwaysVisible 当该Activity主窗口获取焦点,软键盘总是显示的,不管是确认导航到该Activity还是Activity被覆盖后显示出来。

2.6K10
  • Android富文本开发

    何在ViewGroup中添加view,删除view给相应view和受影响的其他view添加动画,不太容易做。...对于光标前面的字符串保留,设置给当前获得焦点EditText(此为分割出来的第一个EditText) 把光标后面的字符串放在新创建的EditText中(此为分割出来的第二个EditText) 在第二个...,这种用户交互方式,往往不是产品想要的,往往会提出以下优化需求: 需求1:editText获取焦点,但是不弹出软键盘(也就是说光标显示第一个输入框,不主动弹软键盘) 在第一个输入框的最直接父布局加入:android...:windowSoftInputMode="stateAlwaysHidden" (效果:软键盘不弹出,光标显示在第一个输入框中) 需求2:editText不获取焦点,当然软键盘不会主动弹出(光标也不显示...) 在第一个输入框的最直接父布局加入:android:focusable="true";android:focusableInTouchMode="true" (效果:软键盘不弹出,光标不显示,其他输入框也不获取焦点

    8.5K20

    android传感器开发与智能设备案例实战_传感器的选择

    加速度传感器(Accelerometer):坐标系统的x轴沿屏幕向左,y轴沿屏幕向上,z轴垂直于屏幕向里 方向传感器(Orientation): 第一个角度...:表示手机顶部朝向与正北方的夹角(z轴旋转0-180);第二个角度:表示手机顶部或尾部翘起的角度(x轴旋转-180-180); 第三个角度:表示手机左侧或者右侧翘起的角度...(y轴旋转-90-90) 磁场传感器(Magnetic Field):三个数据分别代表周围磁场分解到x,y,z三个方向上的磁场分量,单位微特斯拉(uT) 温度传感器(Temperature):代表手机设备周围的温度...,单位摄氏度; 光传感器(Light):代表手机设备所处环境的光的强度 压力传感器(Pressure):代表手机设备周围的压力的大小 Android系统对所有的传感器的处理方式完全相同,一个程序来介绍上面这些传感器的用法...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    60621

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

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

    1.1K20

    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

    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...发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    57110

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

    设置成1.5倍. ---- 输入法相关 设置默认输入法 有时候为了提高用户体验,在弹出输入法需要设置默认的输入状态,比如单词应用弹出输入法,输入法最好是在英文输入状态下。...默认获取焦点 EditText 默认获取焦点,并弹出键盘,这本来是默认的行为。...但有些情况,会因为焦点被别的控件获取了,我们又想让它自动获取焦点,并自动弹出键盘。..., 0); } 取消 EditText 默认获取焦点的行为 在EditText的父级控件中找一个,添加这两个属性: android:focusable="true" android:focusableInTouchMode...-- 这两句是为了取消自动获取焦点 --> <EditText android:id="@+id/search_edittext" android:layout_width

    2.3K20

    安卓中activity的生命周期_产品生命周期五个阶段

    在某些情况下,activity会隐藏在金字塔下等待(例如当用户切换到其他app),此时activity可以重新回到顶端(如果用户回到这个activity)并恢复用户离开的状态。...用户没有激活某个组件不会消耗宝贵的系统资源。 离开app并且一段时间后返回,不会丢失用户的使用进度。 设备发生屏幕旋转不会crash或者丢失用户的使用进度。...例如接收到一个来电,用户切换到另外一个activity,或者是设备屏幕关闭。...- – 果用户点击back按钮,第一个activtiy会被重启。 用户在使用我们的app接收到一个来电通话。...(请注意这里的描述,这对理解onSaveInstanceState执行的时刻很重要) Caution: 你的Activity会在每次旋转屏幕被destroyed与recreated。

    67510

    Android训练课程(Android Training) - 构建你的第一个应用

    构建你的第一个应用(app) 欢迎来到安卓开发! 这个课程教你如何构建你的第一个应用。你讲会学到如何去创建一个安卓工程和启动一个可以调试的应用的版本。...这节课将将向你展示如何在真实设备和模拟器中安装和启动你的应用,有两种方式:使用Eclipse或者命令提示符工具。...这个结果一点也不让人兴奋,但是重要的是 你明白了如何在开始开发之前去启动一个应用。...下面演示了 你如何在 元素内定义它: EditText android:id="@+id/edit_message" android:layout_width="wrap_content...当它打开,在文本框输入一个消息,点击发送,这时消息出现在第二个activity。 图表2 。 在最终的应用程序里的两个activity,运行在安卓4.4 这就是了,你完成构建里你的第一个安卓应用!

    2.2K00

    Android开发笔记(一百四十八)自定义输入法软键盘

    手机上输入文字,都是通过系统自带的软键盘,这个软键盘可以是Android自带的,也可以是第三方软键盘搜狗输入法。...3、系统软键盘会自动响应EditText焦点变更事件,常常在意料之外突然之间蹦出来,弄得开发者要么剥夺EditText焦点,要么强行关闭软键盘显示,但无论哪种方式都得开发者强行**,很不方便。...3、软键盘不是一个孤立的控件,它的按键动作需要实时在某个编辑框中把数字显示出来,所以在使用时还得给它绑定一个EditText,这样软键盘才知道我的按键要输出给这个EditText,而不是输出给那个EditText...对象,即当软键盘发生按键动作,要把按键结果显示在哪个EditText上。...start - 1, start); } } } else if(primaryCode>='0' && primaryCode<='9') { //可以直接输入的字符(0

    2.5K30
    领券