如何让EditText不能自动获取焦点(转)

转载地址:http://blog.csdn.net/subaohao/article/details/9043895

在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢?
方法:
在第一个EditText前面添加一个LinearLayout,并且一定要请求获得焦点,否则无效。网上很多都说到要添加一个LinearLayout,但是没有强调要使用
<requestFocus />这句,发现不使用这句其实是没有效果的。

<LinearLayout
        android:focusable="true" android:focusableInTouchMode="true"
        android:layout_width="0px" android:layout_height="0px">
        <requestFocus />
 </LinearLayout>

然后,所有的EditText,里面都不要再使用<requestFocus />。

也有人说,初始化后,调用

EditText的clearFocus(),即:
 EditText textIn = (EditText)findViewById(R.id.TextInput);
 textIn.clearFocus();
 textIn.setSelected(false);
试过,但没有效果。

Android 如何让EditText不自动获取焦点

在项目中,一进入一个页面, EditText默认就会自动获取焦点。

那么如何取消这个默认行为呢?

在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行为

解决之道:在EditText的父级控件中找一个,设置成

android:focusable="true"
android:focusableInTouchMode="true"

这样,就把EditText默认的行为截断了!

<LinearLayout
        style="@style/FillWrapWidgetStyle"
        android:orientation="vertical"
        android:background="@color/black"
        android:gravity="center_horizontal"

        android:focusable="true"
        android:focusableInTouchMode="true"
        >
        <ImageView
            android:id="@+id/logo"
            style="@style/WrapContentWidgetStyle"
            android:background="@drawable/dream_dictionary_logo"
          />
        <RelativeLayout
            style="@style/FillWrapWidgetStyle"
            android:background="@drawable/searchbar_bg"
            android:gravity="center_vertical"
            >
            <EditText
                android:id="@+id/searchEditText"
               style="@style/WrapContentWidgetStyle"
               android:background="@null"
               android:hint="Search"
               android:layout_marginLeft="40dp"
               android:singleLine="true"
             />

        </RelativeLayout>

    </LinearLayout>


原作者的试过的这些方法我还没有经过实践,但是我觉得无论什么方法,本质都应该是:

转移EditText的焦点,将焦点放到别的控件上面。假如EditText位于第一位,那么就应该在它前面定义一个隐藏的控件,让后将焦点放到这个隐藏的控件上面。

以后有时间我会将方法都测试一下,验证我的想法对不对!!

				
时间: 2024-12-18 18:07:25

如何让EditText不能自动获取焦点(转)的相关文章

让EditText不能自动获取焦点

在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢? 方法: 在第一个EditText前面添加一个LinearLayout,并且一定要请求获得焦点,否则无效.网上很多都说到要添加一个LinearLayout,但是没有强调要使用 <requestFocus />这句,发现不使用这句其实是没有效果的. <LinearLayout         android

Android 如何让EditText不自动获取焦点

在项目中,一进入一个页面, EditText默认就会自动获取焦点. 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行为 解决之道:在EditText的父级控件中找一个,设置成 Android:focusable="true"     android:focusableInTouchMode="true" 这样,就把EditText默认的行为截

Android 如何让EditText不自动获取焦点 (转)

在项目中,一进入一个页面, EditText默认就会自动获取焦点. 那么如何取消这个默认行为呢? 在网上找了好久,有点 监听软键盘事件,有点 调用 clearFouse()方法,但是测试了都没有! xml中也找不到相应的属性可以关闭这个默认行为 解决之道:在EditText的父级控件中找一个,设置成 Android:focusable="true" android:focusableInTouchMode="true" 这样,就把EditText默认的行为截断了!

设置Android让EditText不自动获取焦点

最近在做一个练手项目的时候,因为默认进入的页面有一个EditText控件,每次进入的时候会自动回去焦点弹出软键盘,体验非常不好,后来在网上找到了解决办法:在EditText的父级控件中找一个,设置成 android:focusable="true"      android:focusableInTouchMode="true" 这样,就把EditText默认的行为截断了! 1 <LinearLayout 2 android:id="@+id/ly_

Android:让EditText不自动获取焦点

解决方法: 在EditText的父级控件中加入属性: android:focusable="true" android:focusableInTouchMode="true" 把EditText默认的行为截断

Android Edittext 显示光标 获取焦点 监听焦点

Edittext java 代码控制获取焦点 EditText mEditText = (EditText) findViewById(R.id.et); mEditText.setFocusable(true); mEditText.setFocusableInTouchMode(true); 显示光标 mEditText.requestFocus();//获取焦点 光标出现 监听EditText焦点变化 当获取焦点后 hasFocus 为true mEditText.setOnFocusCh

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

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

EditText 默认不获取焦点,弹出软键盘布局变形解决方案

关于弹出软键盘布局变形解决方案: 在androidMainfest.xml文件中在此Activity中写入 android:windowSoftInputMode="adjustPan" 在实际开发中,有的页面用到Edittext控件,这时候进入该页面可能会自动弹出输入法 这么显示不太友好,所以需要设置一下让Edittext默认不自动获取焦点.在网上查资料解决办法如下: 在EditText的父级控件中找一个,设置成 android:focusable="true"

JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点

今天遇见这么一个小小的问题,就是文本框中需要输入内容才可以提交,如果没有输入就提示并使该文本框获得焦点! 这么一个简单的事情如果没有使用 jQuery的话 是不是对象.focus()就可以了, JavaScript Code复制内容到剪贴板 //这样执行,jquery只会当获取焦点后执行焦点函数的语句了. $(”#nameInput”).focus(); 可是当我们使用了jQuery 这样$(”#nameInput”) 返回的就不是DOM对象了而是jQuery对象,这样的话$(”#nameInp