Android启动Activity之后阻止EditText自动获得焦点

这个问题是StackOverFlow上面一个热门的问题Stop EditText from gaining focus at Activity startup。现在我将这个问题翻译并且将各路答案进行整理,保证可以解决这个问题

作者遇到的问题如下:

我有一个Activity,里面有一个EditText和一个ListView,每当我启动Activity的时候,EditText都会自动获取焦点(光标在那里一闪一闪的)。而我不希望他自己获得焦点,我尝试了如下语句

EditText.setSelected(false);

但是根本不起作用,我应该如何阻止EditText自己获取焦点呢?

答案总结:

答案1:确保你的xml布局文件中没有 requestFocus 标签,这个标签会被eclipse自动添加,如果有的话,将其删掉。

答案2:在EditText所在的父布局中添加两行

<LinearLayout
        android:focusable="true"
        android:focusableInTouchMode="true"/>

这样父布局会默认获取焦点,焦点就从EditText抢走了。

答案3:没有答案3了,上面两个答案基本可以解决问题了。

时间: 2024-08-18 04:30:28

Android启动Activity之后阻止EditText自动获得焦点的相关文章

android 设置字体颜色、EditText自动输入转换成大写字母的多种方式

在TextView上面设置某一个字的字体颜色为指定颜色时,可以通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void setText(TextView t){ String text = t.getText().toString().trim(); SpannableString span = new SpannableString(text); span.setSpan(new ForegroundColorS

android启动activity文本框不获得焦点

在开发中,常常会碰到这种情况,打开一个activity后,第一个文本框自动获得焦点,同时会弹出软键盘输入框,这样很影响用户体验,现在来看解决方法. 我们先来看看为什么会出现上述情况,原因很简单,文本框默认是会获得焦点的,获得焦点之后当然会继续弹出输入框,等待输入,针对此原因,我们可以有以下两种方案: 1.不让文本框获得焦点: 2.获得焦点不弹出输入框: 来看第一种方法,我们可以抢占文本框的焦点,如在其父窗体中加入: 1 <LinearLayout 2 xmlns:android="http

Android 启动Activity的方式

Activity的启动分为两种方式,显示方式和隐式方式,显示方式就是在通过intent启动Activity时指定了Activity的包名和类名, 而隐式方式则在初始化Intent时只指定action或action和data属性.接下来将来总结显示启动和隐式启动的方式和注意事项. 1.Activity的显示启动:通过包名来启动(不管是启动自己应用的Activity还是启动其他应用的Activity) 1.1 ComponentName对象的方式 ComponentName cn = new Com

Android启动activity的4种模式(standard、singleTop、singleTask、singleINstance) ..

在AndroidManifest.xml中配置activity时,android:launchMode属性会指定启动activity的模式,有四种: standard singleTop singleTask singleInstance 这四种模式一般配合Intent属性变量FLAG_ACTIVITY_XXX使用,比如FLAG_ACTIVITY_NEW_TASK,本文暂时撇开FLAG_ACTIVITY_XXX,只讨论这四种模式的启动结果,先考虑只在同一个应用下的情况. standard模式 系

关于android中EditText自动获取焦点并弹出键盘的相关设置

在android开发中,关于EditText自动获取焦点弹出键盘,我们可能又是会有让键盘自动弹出的需求,有时可能又会有不想让键盘自动弹出的需求,下面是我所总结的两种方法: 需求:EditText自动获取焦点并弹出键盘,代码: EditText.setFocusable(true); EditText.setFocusableInTouchMode(true); EditText.requestFocus(); 需求:EditText不会自动获取焦点并且不会弹出键盘,代码:  将其父控件设置: P

Android隐式启动Activity可能存在的坑

转载本专栏文章,请注明出处,尊重原创 .文章博客地址:道龙的博客 本篇文章,对隐式启动Activity再做分析. 有些人可能会说了,隐式启动活动不是很简单吗?这有什么不理解的?话先别说的这么早,对于隐式启动,还是具有很大的坑要爬的,当然,您如果是一个资深开发者就另当别论了. 本篇文章,我们从最简单的开始,一步步引入,相信这样的方式,读起来也会轻松一些. 我们平时启动一个活动,会通过两种方式.1.显示启动:2.隐式启动. (一)首先,我们来看两个很简单的小案例(实现打电话). 我们再在布局文件提供

【Android framework】am命令启动Activity流程

源码基于Android 4.4. am start -W -n com.dfp.test/.TEstActivity -W:等目标Activity启动后才返回 -n:用于设置Intent的Component Am.java->run()->runStart() ——intent = makeIntent(); ——intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ——mAm.startActivityAndWait();              

Android中Activity启动模式详解,可以控制程序按home键后进来还会调用一个自己不喜欢的界面

其实这是很简单的一个问题.但是这还是要对android中activity的启动模式有相当的理解才行,当点击home键的时候,懂Android的人都知道,他会把当前activity放到后退栈中, 栈(Stack)又称堆栈,它是一种运算受限的线性表,其限制是仅允许在表的一端进行插入和删除运算.人们把此端称为栈顶,栈顶的第一个元素被称为栈顶元素,相对地,把另一端称为栈底.向一个栈插入新元素又称为进栈或入栈,它是把该元素放到栈顶元素的上面,使之成为新的栈顶元素:从一个栈删除元素又称为出栈或退栈,它是把栈

无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCreate()开始,直到调用onDestory()为止.Activity在onCreate()中设置所有“全局”状态以完成初始化. 而在onDestory()中释放所有系统资源.例如,如果Activity有一个线程在后台运行从网络下载数据,它会在onCreate()创建线程, 而在onDestory()销