1 、EditText输入的文字为密码形式的设置

(1)通过.xml里设置:

 把该EditText设为:android:password="true" // 以”.”形式显示文本

(2)在代码里设置:

通过设置EditText的setTransformationMethod()方法来实现隐藏密码或这显示密码。

editText.setTransformationMethod(PasswordTransformationMethod.getInstance());//设置密码为不可见。

2、(1)EditText输入的文字为电话号码

Android:phoneNumber=”true”  //输入电话号码

3、EditText字数限制的设置

(1)在.xml中设置:android:maxLength=“50” 

(2)代码中设置:   

editText.setFilters(new InputFilter[]{newInputFilter.LengthFilter(100)});

4、EditText设置字体

android:typeface="monospace" //设置字型。字形有:normal, sans, serif,monospace

5、EditText是否可编辑

Android:editable // 是否可编辑

6、在EditText中软键盘的调起、关闭

(1)EditText有焦点(focusable为true)阻止输入法弹出

 editText=(EditText)findViewById(R.id.txtBody);

   editText.setOnTouchListener(new OnTouchListener(){  

         public boolean onTouch(View v, MotionEvent event){ 

            editText.setInputType(InputType.TYPE_NULL); //关闭软键盘     

            return false;

         }

    });

(2)当EidtText无焦点(focusable=false)时阻止输入法弹出

 InputMethodManager imm =

(InputMethodManager)getSystemService(INPUT_METHOD_SERVICE); 

 imm.hideSoftInputFromWindow(editText.getWindowToken(),0);

(3)调用数字键盘并设置输入类型和键盘为英文

etNumber.setInputType(InputType.TYPE_CLASS_NUMBER); //调用数字键盘

rlEditText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);//设置输入类型和键盘为英文 或者:android:inputType="textUri|textMultiLine"

(4)android:focusable="false"//键盘永远不会弹出

//不自动弹出键盘

 

//关闭键盘(比如输入结束后执行) InputMethodManager imm =(InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(etEditText.getWindowToken(), 0);

 

//自动弹出键盘

((InputMethodManager)getSystemService(INPUT_METHOD_SERVICE)).toggleSoftInput(0,InputMethodManager.HIDE_NOT_ALWAYS);

etEditText.requestFocus();//让EditText获得焦点,但是获得焦点并不会自动弹出键盘

7、android:layout_gravity和android:gravity的区别

(1)android:layout_gravity是本元素对父元素的重力方向。

(2)android:gravity是本元素所有子元素的重力方向。

8、android:padding和android:layout_margin区别

这两个都可以设置边距,但有细微的区别:

(1)android:padding是相对父view的边距

(2)android:layout_margin是相对同一级View的边距

例:LinearLayout是水平布局,下面有两个按钮,

(a)如果右边的按钮想距左边的按钮15px,因为这两个按钮是同一级的,应该用android:layout_margin;

(b)如果右边的按钮想距左边的距离为350px,应该用android:padding

9、android:numeric//只接受数字

android:numeric来控制输入的数字类型,一共有三种分别为integer(正整数)、signed(带符号整数,有正负)和decimal(浮点数)。

10、Enter键图标的设置

软键盘的Enter键默认显示的是“完成”文本,我们知道按Enter建表示前置工作已经准备完毕了,要去什么什么啦。比如,在一个搜索中,我们输入要搜索的文本,然后按Enter表示要去搜索了,但是默认的Enter键显示的是“完成”文本,看着不太合适,不符合搜索的语义,如果能显示“搜索”两个字或者显示一个表示搜索的图标多好。事实证明我们的想法是合理的,Android也为我们提供的这样的功能。通过设置android:imeOptions来改变默认的“完成”文本。这里举几个常用的常量值:

(1)actionUnspecified未指定,对应常量EditorInfo.IME_ACTION_UNSPECIFIED效果:

(2)actionNone 没有动作,对应常量EditorInfo.IME_ACTION_NONE效果:

(3)actionGo去往,对应常量EditorInfo.IME_ACTION_GO 效果:

(4)actionSearch 搜索,对应常量EditorInfo.IME_ACTION_SEARCH效果: 

(5)actionSend 发送,对应常量EditorInfo.IME_ACTION_SEND效果:

(6)actionNext 下一个,对应常量EditorInfo.IME_ACTION_NEXT效果:

(7)actionDone 完成,对应常量EditorInfo.IME_ACTION_DONE效果:

 

11、使用android:imeOptinos可对Android自带的软键盘进行一些界面上的设置:

android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕 同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键 android:imeOptions="actionNone" //输入框右侧不带任何提示 android:imeOptions="actionGo"   //右下角按键内容为'开始' android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索 android:imeOptions="actionSend"   //右下角按键内容为'发送' android:imeOptions="actionNext"  //右下角按键内容为'下一步' android:imeOptions="actionDone" //右下角按键内容为'完成'

12、限定edittext能输入数字和字母,并且默认输入为数字,如身份证号码

android:inputType="number" android:digits="0123456789xyzXYZ"

13、软键盘的调起导致原来的界面被挤上去,或者导致界面下面的tab导航被挤上去,解决方法如下

解决方法:

使用Manifest中的Activity的android:windowSoftInputMode的"adjustPan"属性。

另外注意:有关软键盘的问题可参考android:windowSoftInputMode中属性。

14、edittext光标详解 edittext.requestFocusFromTouch();//让光标放入到点击位置。 edittext.requestFocus();//默认方式获得焦点
EditText editor = (EditText)getCurrentView();//光标处插入 int cursor = editor.getSelectionStart(); editor.getText().insert(cursor,delta);

 

让光标移到末端(这样文字就会向前显示) EditText et = ... String text = "text"; et.setText(text); et.setSelection(text.length());

 

android:cursorVisible="false" 隐藏光标

android:background="#00000000"//不要文本框背景 

 

 

Android - 文本框的输入法控制和默认焦点设置

在开发中,必不可少的会使用到文本框(EditText)来进行数据录入,也就会需要对输入法进行一些控制。
先看下LAYOUT定义文件中的和输入法有关的属性:
属性名
说明
android:inputType
指定输入法的类型,int类型,可以用|选择多个。取值可以参考:android.text.InputType类。取值包括:text,  textUri, phone,number,等。
android:imeOptions
指定输入法窗口中的回车键的功能,可选值为normal,  actionNext,actionDone,actionSearch等。部分输入法对此的支持可能不够好。
下面的LAYOUT定义文件举了一些例子说明inputType和imeOptions的使用。
    
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="Normaltext"
android:inputType="text"
android:imeOptions="actionNext"
/>
    
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="Integeronly"
android:inputType="number"
android:imeOptions="actionNext"
/>
    
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="Phonenumber"
android:inputType="phone"
android:imeOptions="actionNext"
/>
    
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="Email"
android:imeOptions="actionSend"
android:inputType="textEmailAddress"
/>
    
android:layout_width="fill_parent"android:layout_height="wrap_content"
android:hint="WebSite"
android:imeOptions="actionDone"
android:inputType="textUri"
/>有时候也要对intent的默认焦点进行设置,不至于在intent跳转的时候默认焦点(光标)在EditText上,导致进入intent就打开输入法,影响界面美观。
默认焦点的顺序是:从上倒下从左到右第一个可以输入的控件作为焦点
可以使用:
button.setFocusable(true);
button.requestFocus();
button.setFocusableInTouchMode(true);
也可以:
在EditText前面放置一个看不到的LinearLayout,让他率先获取焦点:Android EditText 属性汇总


Android EditText 属性汇总

EditText继承关系:View-->TextView-->EditTextEditText的属性很多,这里介绍几个:android:hint="请输入数字!"//设置显示在空间上的提示信息android:numeric="integer"//设置只能输入整数,如果是小数则是:decimalandroid:singleLine="true"//设置单行输入,一旦设置为true,则文字不会自动换行。android:password="true"//设置只能输入密码android:textColor = "#ff8c00"//字体颜色android:textStyle="bold"//字体,bold, italic, bolditalicandroid: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, monospaceandroid:background="@null"//背景,这里没有,指透明android:layout_weight="1"//权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。android:textAppearance="?android:attr/textAppearanceLargeInverse"//文字外观android:layout_gravity="center_vertical"//设置控件显示的位置:默认top,这里居中显示,还有bottomandroid:gray="top" //多行中指针在第一行第一位置et.setSelection(et.length());//调整光标到最后一行android:autoText //自动拼写帮助android:capitalize //首字母大写android:digits //设置只接受某些数字Android:singleLine//是否单行或者多行,回车是离开文本框还是文本框增加新行android:numeric //只接受数字android:phoneNumber //输入电话号码android:editable //是否可编辑android:autoLink=”all” //设置文本超链接样式当点击网址时,跳向该网址 android:textAppearance="?android:attr/textAppearanceLargeInverse"//文字外观,这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。不知道这样理解对不对?         属性名称描述android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正。此处无效果,在显示输入法并输入的时候起作用。android:bufferType指定getText()方式取得的文本类别。选项editable 类似于StringBuilder可追加字符,也就是说getText后可调用append方法设置文本内容。spannable 则可在给定的字符区域使用样式,参见这里1、这里2。android:capitalize设置英文字母大写类型。此处无效果,需要弹出输入法才能看得到,参见EditView此属性说明。android:cursorVisible设定光标为显示/隐藏,默认显示。android:digits设置允许输入哪些字符。如“1234567890.+-*/% ()”android:drawableBottom在text的下方输出一个drawable,如图片。如果指定一个颜色的话会把text的背景设为该颜色,并且同时和background使用时覆盖后者。android:drawableLeft在text的左边输出一个drawable,如图片。android:drawablePadding设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果。 android:drawableRight在text的右边输出一个drawable,如图片。android:drawableTop在text的正上方输出一个drawable,如图片。android:editable设置是否可编辑。这里无效果,参见EditView。android:editorExtras设置文本的额外的输入数据。在EditView再讨论。android:ellipsize设置当文字过长时,该控件该如何显示。有如下值设置:”start”—?省略号显示在开头;”end”——省略号显示在结尾;”middle”—-省略号显示在中间;”marquee” ——以跑马灯的方式显示(动画横向移动)android:freezesText设置保存文本的内容以及光标的位置。参见:这里。android:gravity设置文本位置,如设置成“center”,文本将居中显示。android:hintText为空时显示的文字提示信息,可通过textColorHint设置提示信息的颜色。此属性在EditView中使用,但是这里也可以用。android:imeOptions附加功能,设置右下角IME动作与编辑框相关的动作,如actionDone右下角将显示一个“完成”,而不设置默认是一个回车符号。这个在EditView中再详细说明,此处无用。android:imeActionId设置IME动作ID。在EditView再做说明,可以先看这篇帖子:这里。android:imeActionLabel设置IME动作标签。在EditView再做说明。android:includeFontPadding设置文本是否包含顶部和底部额外空白,默认为true。android:inputMethod为文本指定输入法,需要完全限定名(完整的包名)。例如:com.google.android.inputmethod.pinyin,但是这里报错找不到。android:inputType设置文本的类型,用于帮助输入法显示合适的键盘类型。在EditView中再详细说明,这里无效果。android:linksClickable设置链接是否点击连接,即使设置了autoLink。android:marqueeRepeatLimit在ellipsize指定marquee的情况下,设置重复滚动的次数,当设置为marquee_forever时表示无限次。android:ems设置TextView的宽度为N个字符的宽度。这里测试为一个汉字字符宽度,如图:android:maxEms设置TextView的宽度为最长为N个字符的宽度。与ems同时使用时覆盖ems选项。android:minEms设置TextView的宽度为最短为N个字符的宽度。与ems同时使用时覆盖ems选项。android:maxLength限制显示的文本长度,超出部分不显示。android:lines设置文本的行数,设置两行就显示两行,即使第二行没有数据。android:maxLines设置文本的最大显示行数,与width或者layout_width结合使用,超出部分自动换行,超出行数将不显示。android:minLines设置文本的最小行数,与lines类似。android:lineSpacingExtra设置行间距。android:lineSpacingMultiplier设置行间距的倍数。如”1.2”android:numeric如果被设置,该TextView有一个数字输入法。此处无用,设置后唯一效果是TextView有点击效果,此属性在EdtiView将详细说明。android:password以小点”.”显示文本android:phoneNumber设置为电话号码的输入方式。android:privateImeOptions设置输入法选项,此处无用,在EditText将进一步讨论。android:scrollHorizontally设置文本超出TextView的宽度的情况下,是否出现横拉条。android:selectAllOnFocus如果文本是可选择的,让他获取焦点而不是将光标移动为文本的开始位置或者末尾位置。TextView中设置后无效果。android:shadowColor指定文本阴影的颜色,需要与shadowRadius一起使用。效果:android:shadowDx设置阴影横向坐标开始位置。android:shadowDy设置阴影纵向坐标开始位置。android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行android:shadowDx设置阴影横向坐标开始位置。android:shadowDy设置阴影纵向坐标开始位置。android:shadowRadius设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好。android:singleLine设置单行显示。如果和layout_width一起使用,当文本不能全部显示时,后面用“…”来表示。如android:text="test_ singleLine " android:singleLine="true" android:layout_width="20dp"将只显示“t…”。如果不设置singleLine或者设置为false,文本将自动换行android:text设置显示文本. android:textSize设置文字大小,推荐度量单位”sp”,如”15sp”android:textStyle设置字形[bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2] 可以设置一个或多个,用“|”隔开android:typeface设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3]android:height设置文本区域的高度,支持度量单位:px(像素)/dp/sp/in/mm(毫米)android:maxHeight设置文本区域的最大高度android:minHeight设置文本区域的最小高度android:width设置文本区域的宽度,支持度量单位:px(像素)/dp/sp/in/mm(毫米),与layout_width的区别看这里。android:maxWidth设置文本区域的最大宽度android:minWidth设置文本区域的最小宽度android:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse/textAppearanceSmall/textAppearanceSmallInverseandroid:textAppearance设置文字外观。如“?android:attr/textAppearanceLargeInverse”这里引用的是系统自带的一个外观,?表示系统是否有这种外观,否则使用默认的外观。可设置的值如下:textAppearanceButton/textAppearanceInverse/textAppearanceLarge/textAppearanceLargeInverse/textAppearanceMedium/textAppearanceMediumInverse


更多相关文章

  1. Dialog详解
  2. 直接设置 Activity 的背景颜色
  3. 安卓版本问题compileSdkVersion, minSdkVersion 和 targetSdkVer
  4. Android通过ImageView设置手指滑动控件缩放
  5. 关于Layout
  6. android studio IDE 下,设置ACTIVITY全屏
  7. Android自定义数字键盘解析
  8. ✿Android(安卓)3.1 --- 久违的 USB、mtp、rtp
  9. Android(安卓)Studio 3.5.2版本中Kotlin代码不显示代码补齐自动

随机推荐

  1. Android三种方法实现事件监听
  2. android如何从系统或相机中获取照片
  3. Android 调用系统摄像头拍照保存并且更新
  4. Bugly Android热更新使用指南
  5. android 通过编程方式 卸载sdcard
  6. android导出sqllist数据库要先配置adb.ex
  7. 点击listitem按下效果替换默认颜色
  8. Android(安卓)SNTP 时间同步
  9. android edittext 输入字数限制 超过最大
  10. Android Studio gradle Apk命名