Android 中EditText属性专题研究

一、修改回车键

1.回车提交
/**
* 处理软键盘最后一个[多功能Enter按键]的处理程序
*/
EditText passwordEt = (EditText)findViewById(R.id.userlogin_password_et);

 passwordEt.setOnEditorActionListener(new TextView.OnEditorActionListener()
 {
			
 @Override
 public boolean onEditorAction(TextView v, int actionId, KeyEvent event) 
 {
        Toast.makeText(MainActivity.this, "actionId==>"+actionId, Toast.LENGTH_SHORT).show();
     
	if(actionId == EditorInfo.IME_ACTION_GO)  //passwordEt的布局中需添加android:imeOptions="actionGo"
	{
		InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);  
		if(inputMethodManager!=null && inputMethodManager.isActive()) 
		{  
		     //这里的判断并不可靠,不过为了效率,还是加上吧
		     
		      inputMethodManager.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);  
		 } 
		    //出发点击事件,间接实现登录,提交功能
		   //doHttpUserLogin();
		   
		return true;
	}
	return false;
     }
});

 

2.自定义Action键

(详细参考:http://www.cnblogs.com/over140/archive/2010/09/02/1815439.html)

android:imeOptions="actionGo" -设置最后一个按键的动作
android:imeActionLabel="登录" -自定义 最后一个按键上的文字
android:imeActionId="1024"-自定义 最后一个按钮被点击时的actionId

然后在下面方法中接受

onEditorAction(TextView v, int actionId, KeyEvent event)

103640_Z8B0_2256215.png

android:digits="1234567890abcdefghijklmnopqrstuvwxyzABCDEFG.@+]" -设置可选的输入字符,遗憾的是,不支持正则表达式,
比html5还垃圾,但某些时候还是不得不使用
android:singleLine="true" - 默认是false,设置是否只显示一行
android:inputType="" -输入类型,这个不多讲

二、光标的设置

android:cursorVisible=""-设置光标的可见性
android:textCursorDrawable="" -设置光标颜色

 

注意:光标必须设置为shape drawable文件才行,如下

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    	android:visible="true" 
    	android:shape="rectangle" 
    	android:dither="true">
    <solid android:color="@color/orange"/>
    <size android:width="1dip"/>
</shape>

 

光标效果如下

104110_HUgQ_2256215.png

 

三、焦点转移

android:nextFocusUp- 定义当点up键时,哪个控件将获得焦点
android:nextFocusDown-定义当点down键时,哪个控件将获得焦点
android:nextFocusLeft-定义当点left键时,哪个控件将获得焦点
android:nextFocusRight--定义当点right键时,哪个控件将获得焦点

四、行数控制

android:lineSpacingExtra="10sp"如果EdiText是多行文本输入框,那么每行文字的行间距大小由此属性来设置 
android:lines="5" 行数(注意,行数必须大于0,并且行数大于1时,必须设置android:singleLine="false",至于文字显示方向,可有gravity来设置)
android:singleLine="false"
android:gravity="left|top"

    111658_a6wb_2256215.png

 

android:maxLength="" -文字可输入的最大长度,而不是最大显示长度,超过最大长度,不显示(非常有用,如果是TextView一般和 android:ellipsize 配合使用)
android:ellipsize=""  -最容易被遗忘的属性,值有start,end,middle,marquee,none,,如果超过最大长度如何显示文字,前三者表示,显示 (缩略符...) 的位置,
则显示跑马灯,最后一个表示什么都不显示(最近一个项目,需要自定义超出文本的显示方式,可一直受到 android:ellipsize 的干扰,最终设为none来解决的).这个在html5中也有
android:marqueeRepeatLimit="marquee_forever" 无线循环的跑马灯效果

 

105847_9Ye1_2256215.png

 

五、大小写自动转换

在这里再加一些内容,英文字符的自动转换(下面是将小写转为大写)

import android.text.method.ReplacementTransformationMethod;
public class AllCapTransformationMethod extends ReplacementTransformationMethod {

@Override
protected char[] getOriginal() {
    char[] aa = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z' };
    return aa;
}

@Override
protected char[] getReplacement() {
    char[] cc = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' };
    return cc;
}

}

//限制只输入大写,自动小写转大写
editext.setTransformationMethod(new AllCapTransformationMethod ());

六、让屏幕保持常亮

android:keepScreenOn="true"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Android-5.0

Android出现类似web前端css技术中的Z-Index属性,用来指定垂直方向上距离盒子模型底端的高度(在CSS中称作层级)
Android:elevation与TransitionX

 

try doing it!

 

转载于:https://my.oschina.net/ososchina/blog/347459

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值