代码改变世界

[Android学习笔记]EditText的使用

2014-04-10 00:49  hellenism  阅读(325)  评论(0编辑  收藏  举报

EditText就是我们最常用的文本输入框

 

常用属性见官方文档

 

主要是以下几个问题:

1.取消默认获取焦点

Activity启动时候会把焦点默认停留在第一个EditText控件上

 

一般的解决方法是在此EditeText之前加入一个看不到的控件,让其先于EditText获取焦点

加入一个看不到LinearLayout控件

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

 

2.修改EditeText样式

一般步骤为:

a).res/drawable文件夹下建立editeText需要的外观样式

b).定义selector,引用样式

 

默认样式bg_edittext_normal.xml

<?xml version="1.0" encoding="UTF-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="3dip"/>  
    <stroke    
        android:width="1dip"    
        android:color="#cccccc" />   
</shape>
bg_edittext_normal.xml

 

获取焦点的样式bg_edittext_focused.xml

<?xml version="1.0" encoding="UTF-8"?>   
<shape xmlns:android="http://schemas.android.com/apk/res/android">   
    <solid android:color="#FFFFFF" />   
    <corners android:radius="3dip"/>  
    <stroke    
        android:width="1dip"    
        android:color="#728ea3" />   
</shape>
bg_edittext_focused.xml

 

selector:bg_edittext.xml

<?xml version="1.0" encoding="UTF-8"?>   
<selector xmlns:android="http://schemas.android.com/apk/res/android">  
        <item android:state_window_focused="false" android:drawable="@drawable/bg_edittext_normal" />  
        <item android:state_focused="true" android:drawable="@drawable/bg_edittext_focused" />  
</selector>
bg_edittext.xml

 

使用selector:

        <EditText
            android:id="@+id/editTextContent"
            android:layout_width="350dp"
            android:layout_height="match_parent"
            android:background="@drawable/bg_edittext"
            android:text="123" />
使用EditText