EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置

简介: EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置

EditText可输入,但页面进来的时候默认不获取焦点,并不弹出软键盘。


手动点击的时候EditText获取焦点,弹出软键盘,但不把底部的布局顶上来。


1.在manifest中给Activity添加windowSoftInputMode属性


<activity

android:name=".MainActivity"

android:windowSoftInputMode="stateUnspecified|adjustResize|stateHidden|adjustPan">

</activity>


stateUnspecified:软键盘默认的设置


adjustResize:当前Activity自动调整屏幕大小留出软键盘的空间


stateHidden:当前Activity隐藏软键盘


adjustPan:如果EditText被软键盘覆盖了一半,当此EditText获取焦点的时候,当前Activity会自动调整让EditText完全显示,避免被软键盘遮挡


2.在EditText布局之前加上一个空布局,并requestFocus,相当于是把焦点抢了,这样EditText就获取不到焦点了


布局:

<LinearLayout
                        android:id="@+id/getfocus"
                        android:layout_width="0px"
                        android:layout_height="0px"
                        android:focusable="true"
                        android:focusableInTouchMode="true"
                        android:orientation="horizontal">
                        <requestFocus />
                    </LinearLayout>
                    <EditText
                        android:id="@+id/et_tel"
                        style="@style/styleEditText"
                        android:hint="请输入手机号"
                        android:inputType="number" />


3.主动获取焦点弹出软键盘

<activity android:name=".activity.SearchActivity"
                  android:windowSoftInputMode="stateVisible"/>


4.EditText焦点监听

EditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {  
    @Override  
    public void onFocusChange(View v, boolean hasFocus) {  
        if(hasFocus){//获得焦点  
        }else{//失去焦点  
        }  
    }             
});


5.EditText输入监听

EditText.addTextChangedListeneer(new TextWatcher){
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
//EditText改变之前
 } 
@Override 
public void onTextChanged(CharSequence s, int start, int before, int count) {
//改变中
 } 
@Override 
public void afterTextChanged(Editable s) {
//改变后
 }
 });


6.样式设置去掉下划线 android:background="@null"


然后加上.9的圆角图或shape,写一个selector,选中加上颜色


<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_window_focused="false" android:drawable="@drawable/edittext_normal" />

<item android:state_focused="true" android:drawable="@drawable/edittext_focused" />

</selector>

7.禁止输入


mEditText.setKeyListener(null);


目录
相关文章
|
存储 SQL 人工智能
Android Activity启动流程一:从Intent到Activity创建
Android Activity启动流程一:从Intent到Activity创建
|
Java Android开发 开发者
1024程序节|Android框架之一 BRVAH【BaseRecyclerViewAdapterHelper】使用demo
BRVAH是一个强大的RecyclerAdapter框架(什么是RecyclerView?),它能节约开发者大量的开发时间,集成了大部分列表常用需求解决方案。为什么会有它?请查看「Android开源框架BRVAH由来篇」该框架于2016年4月10号发布的第1个版本到现在已经一年多了,经历了800多次代码提交,140多次版本打包,修复了1000多个问题,获得了9000多star,非常感谢大家的使用以及反馈。
479 0
|
2月前
|
Linux Android开发 iOS开发
JEB Pro v5.33 (macOS, Linux, Windows) - 逆向工程平台
JEB Pro v5.33 (macOS, Linux, Windows) - 逆向工程平台
139 0
JEB Pro v5.33 (macOS, Linux, Windows) - 逆向工程平台
|
8月前
|
存储 弹性计算 人工智能
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
阿里云服务器ECS g8i实例怎么样?对于很多企业用户说,云服务器的性能、安全性和AI能力是用户非常关注的。无论是处理大规模数据、运行复杂算法,还是保障业务应用的安全,都需要云服务器具备卓越的性能和强大的功能。阿里云推出的第八代云服务器ECS g8i实例,凭借其卓越的性能、增强的AI能力和全面的安全防护,成为了市场关注的焦点。本文将为大家解析ECS g8i实例的技术特性、产品优势、适用场景及与同类产品的对比,同时介绍其收费标准和活动价格,以供大家了解和选择。
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associate
Caused by: android.system.GaiException: android_getaddrinfo failed: EAI_NODATA (No address associate
432 2
|
Android开发
Android Studio(2022.3.1)设置阿里云源-新旧版本
Android Studio(2022.3.1)设置阿里云源-新旧版本
2804 1
|
API Python
【Python】已解决:AttributeError: ‘TfidfVectorizer’ object has no attribute ‘get_feature_names_out’
【Python】已解决:AttributeError: ‘TfidfVectorizer’ object has no attribute ‘get_feature_names_out’
556 0
|
缓存 JavaScript 前端开发
程序员必知:广告等第三方应用嵌入到web页面方案之使用js片段
程序员必知:广告等第三方应用嵌入到web页面方案之使用js片段
204 0
|
XML Java Android开发
Android Studio App开发之实现简单的启动引导页ViewPager(附源码 实现App的欢迎页面)
Android Studio App开发之实现简单的启动引导页ViewPager(附源码 实现App的欢迎页面)
1333 2