Android EditText的设置

1、输入法Enter键图标的设置:

软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone,例如当值为actionNext时enter键外观变成一个向下箭头,而值为actionDone时enter键外观则变成了“完成”两个字。 
我们也可以重写enter的事件

软键盘的Enter键默认显示的是“完成”文本,通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:

actionUnspecified  未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED.  
actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE 
actionGo 去往,对应常量EditorInfo.IME_ACTION_GO
actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH    
actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND   
actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT   
actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE

(EditorInfo.inputType & EditorInfo.TYPE_CLASS_MASK)可以是许多不同的值,包括: 
TYPE_CLASS_NUMBER 
TYPE_CLASS_DATETIME 
TYPE_CLASS_PHONE 
TYPE_CLASS_TEXT

2、事件捕捉处理:

可以通过setOnEditorActionListener设置事件处理。

final EditText input = new EditText(this);
input.setSingleLine(true); //android:singleLine=”true”
   input.setImeOptions(EditorInfo.IME_ACTION_SEND);
   input.setInputType(InputType.TYPE_CLASS_TEXT |InputType.TYPE_TEXT_VARIATION_PASSWORD);
   input.setOnEditorActionListener(new TextView.OnEditorActionListener() {
       public boolean onEditorAction(TextView v, int actionId,
               KeyEvent event)  {
        Log.d(TAG, ""+actionId+","+event);
           if (actionId==EditorInfo.IME_ACTION_SEND
                ||(event!=null&&event.getKeyCode()== KeyEvent.KEYCODE_ENTER)) {
            //do something;
            return true;
           }
           return false;
       }
   }); 

3、editor密码隐藏,怎么写?

有2种方法处理:

代码方法:input.setInputType(InputType.TYPE_CLASS_TEXT |InputType.TYPE_TEXT_VARIATION_PASSWORD);

layout配置方法:android:inputType="textPassword"

4、activity加载完成后,edit输入框会自动弹出输入法,可以通过以下代码屏蔽:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);

5、设置EditText始终不弹出软件键盘 
例:EditText edit=(EditText)findViewById(R.id.edit); 
       edit.setInputType(InputType.TYPE_NULL);

6、让 EditText失去焦点,使用EditText的clearFocus方法 
例如:EditText edit=(EditText)findViewById(R.id.edit); 
           edit.clearFocus();

7、EditText默认不弹出软件键盘

在 AndroidMainfest.xml中选择activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden

< activity android:name=".Main"
android:label="@string/app_name"
android:windowSoftInputMode="adjustUnspecified|stateHidden"
android:configChanges="orientation|keyboardHidden">
< intent-filter>
< action android:name="android.intent.action.MAIN" />
< category android:name="android.intent.category.LAUNCHER" />
< /intent-filter>
< /activity>

8、设置光标到指定位置

EditText et = (EditText) findViewById(R.id.etTest);
et.setSelection(2);
//设置光标不显示,但不能设置光标颜色et.setCursorVisible(false);

//获得焦点时全选文本et.setSelectAllOnFocus(true);

et.requestFocus(); //请求获取焦点et.clearFocus(); //清除焦点

使用EditText的setError提示
et.setError("邮箱"); 
  

自定义图标的setError提示
Drawable dr = getResources().getDrawable(R.drawable.ic_launcher);
dr.setBounds(0, 0, 10, 10); //必须设置大小,否则不显示
et.setError("有错误提示", dr);

et.setInputType(InputType.TYPE_CLASS_PHONE);//只能输入电话号码et.setInputType(InputType.TYPE_CLASS_NUMBER);//只能输入数字et.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);//只能输入邮箱地址et.setInputType(InputType.TYPE_NULL); // 禁止输入(不弹出输入法)

XML实现案例
<EditText android:id="@+id/etTest" android:inputType="number"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>

 


 

8、EditText相关属性

EditText继承关系:View-->TextView-->EditText。 
EditText的属性很多,这里介绍几个: 
android:layout_gravity="center_vertical" 
设置控件显示的位置:默认 top,这里居中显示,还有bottom 
android:hint="请输入数字!" 
设置显示在空间上的提示信息 
android:numeric="integer" 
设置只能输入整数,如果是小数则是:decimal 
android:singleLine="true" 
设置单行输入,一旦设置为true,则文字不会自动换行。 
android:password="true" 
设置只能输入密码 
android:textColor = "#ff8c00" 
字体颜色 
android:textStyle="bold" 
字体,bold, italic, bolditalic 
android:textSize="20dip" 
大小 
android:capitalize = "characters" 
以大写字母写 
android:textAlign="center" 
EditText没有这个属性,但TextView有,居中 
android:textColorHighlight="#cccccc" 
被选中文字的底色,默认为蓝色 
android:textColorHint="#ffff00" 
设置提示信息文字的颜色,默认为灰色 
android:textScaleX="1.5" 
控制字与字之间的间距 
android:typeface="monospace" 
字型,normal, sans, serif, monospace 
android:background="@null" 
空间背景,这里没有,指透明 
android:layout_weight="1" 
权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。 
android:textAppearance="?android:attr/textAppearanceLargeInverse"

修改 EditText 中的光标位置

Android 的 EditText 控件默认获取焦点的时候, 插入光标是在第一个位置的,如果EditText中设置了文本, 这个时候光标是在文本的最前面, 而不是文本的最后. 为了方便用户使用, 需要把光标移动到文本最后, 但是EditText 没有提供 setCursor 函数.  经查看其文档 发现 setSelection 函数可以完成该功能. 如下:

Java代码

  1. EditText et = ...
  2. String text = "text";
  3. et.setText(text);
  4. et.setSelection(text.length());
时间: 2024-11-18 17:03:16

Android EditText的设置的相关文章

Android EditText的设置(转)

1.输入法Enter键图标的设置: 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有normal,actionUnspecified,actionNone,actionGo,actionSearch,actionSend,actionNext,actionDone,例如当值为actionNext时enter键外观变成一个向下箭头,而值为actionDone时enter键外观则变成了“完成”两个字. 我们也可以重写enter的事件 软键盘的Enter键默认显

android editText 软键盘enter键图标的设置

<EditText android:layout_marginTop="10dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="输入单位" android:layout_marginLeft="10dp" android:layout_marginRight="1

android EditText设置弹出数字输入法键盘

<EditText      android:id="@+id/edit_digit_input"      android:layout_width="wrap_content"      android:layout_height="wrap_content"      android:digits="1234567890."      android:singleLine="true"     

android editText 监听事件

在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:singleline="true" 在activity_main.xml文件中,定义了8个EditText,imeOptions分别是: actionDone 完成 对应 EditorInfo.IME_ACTION_DONE actionGo 前进 对应 EditorInfo.IME_ACTION

自定义的Android EditText

这是一个指定EditText,在我们的实际开发中,可以直接拿来用就行了,先上图看效果:        简单介绍下:当文本框有字符串时,在右边会显示一个清除的图标.点击清除的图标可以清除文本框的内容. 先上自定义编辑框代码:代码比较简单,值得注意的是onTouchEvent方法.这个是一个触摸事件,主要捕获清除图标,模拟点击事件. 1 package cn.datian.customedit; 2 3 import android.content.Context; 4 import android

android EditText多行文本输入的若干问题

以前习惯了网页以及swing上的文本框输入,现在到Android上突然没有了这种控件,刚开始使用起来还是比较费力的.为了想实现多行文本框的输入及显示效果,逐一解决了如下问题: 1. 如何让EditText显示成为一个文本框的区域用来输入: 2. 光标从首行开始显示: 3. 如何是设置卷轴: 4. 如何固定文本框的大小. 5. 如何让文本框显示边线: 为了达到如下的效果,我们做了如下的工作: <EditText android:id="@+id/add_content" andro

深度分析:Android中Mms设置页面更改短信中心号码流程

相关控件初始化方法:showSmscPref private void showSmscPref() { int count = MSimTelephonyManager.getDefault().getPhoneCount(); boolean airplaneModeOn = Settings.System.getInt(getContentResolver(), Settings.System.AIRPLANE_MODE_ON, 0) != 0; for (int i = 0; i < c

Android EditText不弹出输入法焦点问题的总结

转自:http://mobile.51cto.com/aprogram-403138.htm 看一个manifest中Activity的配置,如果这个页面有EditText,并且我们想要进入这个页面的时候默认弹出输入法,可以这样设置这个属性:android:windowSoftInputMode=stateVisible,这样就会默认弹起输入法,当然还有别的办法. 1 <activity android:name=".ui.login" 2 android:configChang

Android EditText的使用过程中遇到的问题

一开始EditeText就聚焦等待输入,光标闪烁. 解决方法:需要让父控件获取焦点. android:focusable="true" android:focusableInTouchMode="true" 去除默认的边框,在4.0下面就是EditText下面那条线. 解决方法:这个是因为EditText的背景,所以只需要替换它的背景. android:background="@null" 设置了默认显示的提示信息后(例如上面的 请输入关键字)点