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

在开发中,常常会碰到这种情况,打开一个activity后,第一个文本框自动获得焦点,同时会弹出软键盘输入框,这样很影响用户体验,现在来看解决方法。

我们先来看看为什么会出现上述情况,原因很简单,文本框默认是会获得焦点的,获得焦点之后当然会继续弹出输入框,等待输入,针对此原因,我们可以有以下两种方案:

1、不让文本框获得焦点;
2、获得焦点不弹出输入框;

来看第一种方法,我们可以抢占文本框的焦点,如在其父窗体中加入:

 1     <LinearLayout
 2         xmlns:android="http://schemas.android.com/apk/res/android"
 3         xmlns:tools="http://schemas.android.com/tools"
 4         android:layout_width="match_parent"
 5         android:layout_height="match_parent"
 6         android:focusable="true"
 7         android:focusableInTouchMode="true"
 8         android:orientation="vertical"
 9         tools:context=".MainActivity" >
10
11         <EditText
12             android:id="@+id/etMsg"
13             android:layout_width="wrap_content"
14             android:layout_height="wrap_content" />
15     </LinearLayout>

来看第二种方法,在activity中加入:

1 android:windowSoftInputMode = "stateHidden"

reference:

http://my.oschina.net/helu/blog/142020

时间: 2024-11-08 21:27:56

android启动activity文本框不获得焦点的相关文章

js 判断一个文本框是否获得焦点

1.js 判断一个文本框是否获得焦点 // 可以用document.activeElement判断 // document.activeElement表示当前活动的元素 // 查找你要判断的文本框 var myInput = document.getElementById('myInput'); if (myInput == document.activeElement) {     alert('获取焦点'); } else {     alert('未获取焦点'); } 2.文本框获取焦点后

万恶的IE之 文本框没法获得焦点

万恶的ie在使用iframe,移除iframe后导致页面元素无法聚焦,文本框没法获得焦点,文字也不能选中,搜索原因如下: “ IE 下在移除父层的 DIV 的时候,也就是 IFrame 外层的 DIV 的时候,IE 并没有将内部的 IFrame 从 DOM 中移除,而下次触发函数创建此 IFrame 的时候,使会产生 DOM 冲突,所以解决方法就是在移除父层的 DIV 的时候,先将内部的 IFrame 也移除,于是问题解决了..” 经过测试 解决方案为: 把iframe的src设置为src="&

IE浏览器 下面的文本框,获得焦点后无法输入内容

今天遇到一个问题,在IE浏览器下面,我点击 按钮  弹出一个弹出层,里面有一个 文本编辑器和一个文本框,但是第二次弹出后,文本框和文本编辑器无法输入内容,在控制台用js代码测试 $(document).on("focus","#title",function(){ alert("focus"); }) $(document).on("keydown","#title",function(){ alert(&

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

这个问题是StackOverFlow上面一个热门的问题Stop EditText from gaining focus at Activity startup.现在我将这个问题翻译并且将各路答案进行整理,保证可以解决这个问题 作者遇到的问题如下: 我有一个Activity,里面有一个EditText和一个ListView,每当我启动Activity的时候,EditText都会自动获取焦点(光标在那里一闪一闪的).而我不希望他自己获得焦点,我尝试了如下语句 EditText.setSelected

Android 下拉列表框、文本框、菜单

1.下拉列表框(Spinner) 项目布局 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent&q

Android自动提示文本框(AutoCompleteTextView)

自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools&qu

layer.js V3.0.1 文本框自动获得焦点 修改为 不自动获得焦点

未修改前样式 它的文本框弹出以后,文本框获得焦点在文字的最前面,这不是一个好的用户体验,所以对它进行修改 对layer.js文件进行修改,在layer.js中搜索focus,发现共有两处focus 经过测试,删除阴影部分的代码即可做到文本框不对焦

Android有感(17):文本框TextView类

TextView继承自View,用于显示文本.它有许多的子类,掌握其属性是很重要的. TextView支持的XML属性及相关方法 XML属性 相关方法 说明 android:autoLink setAutoLinkMask(int) 设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all) android:autoText setKeyListener(KeyListener) 如果设置,将自动执行输入

Android 启动Activity的方式

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