单行、多行输入框,其属性及功能场景

来源:互联网 发布:yy音效软件 编辑:程序博客网 时间:2024/05/17 22:01

---单行输入框

editText1.setSingleLine();//控制单行

editText1.setEms(10);//输入框控件本身能显示的字符

editText1.setFilters(new InputFilter[] { new InputFilter.LengthFilter(5) });//用户输入字符长度控制,无所谓汉字、英文字母

----多行输入框

editText1.setMinLines(4);//显示一个4行的输入框

如果xml中配的高度的WRAP_CONTENT,输入超过4行,输入框会自动增加高度,不用滑动就直接能看到所有行的内容。

如果设置了固定高度,只能看到固定高度区域内的内容,滑动看到隐藏的内容。

----设置不可编辑

现在如果有个提交按钮,一按editText1.setEnabled(false);,

EditText不能编辑了,如果固定了高度,又不能滑动,隐藏的内容就看不到了。问题就来了。

那就得换一种不可编辑方式:

editText1.setFocusable(false);
editText1.setFocusableInTouchMode(false);

这种不可编辑,还能滑动。

再次,如果EditText嵌在Listview中,滑动事件冲突,就处理触摸事件

editText1.setOnTouchListener(new OnTouchListener() {

 public boolean onTouch(View view, MotionEvent event) {

editText1.getParent().requestDisallowInterceptTouchEvent(false);

}

}

----输入数字类型控制

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

android:numeric="signed"

下面转自网络--------http://flysnow.iteye.com/blog/828415/

---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 效果:

 下面已搜索为例,演示一个实例,修改main.xml如下:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <EditText  
  8.     android:id="@+id/edit_text"    
  9.     android:layout_width="fill_parent"   
  10.     android:layout_height="wrap_content"  
  11.     android:imeOptions="actionSearch"/>  
  12. </LinearLayout> 
---

EditText的取值、全选、部分选择、获取选中文本

       下面通过一个例子来演示EditText的取值、全选、部分选择和获取选中文本.main.xml修改如下:

Xml代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7. <EditText  
  8.     android:id="@+id/edit_text"    
  9.     android:layout_width="fill_parent"   
  10.     android:layout_height="wrap_content"  
  11.     android:imeOptions="actionSearch"/>  
  12. <Button   
  13.     android:id="@+id/btn_get_value"  
  14.     android:text="取值"  
  15.     android:layout_width="wrap_content"  
  16.     android:layout_height="wrap_content"/>  
  17. <Button   
  18.     android:id="@+id/btn_all"  
  19.     android:text="全选"  
  20.     android:layout_width="wrap_content"  
  21.     android:layout_height="wrap_content"/>  
  22. <Button   
  23.     android:id="@+id/btn_select"  
  24.     android:text="从第2个字符开始选择"  
  25.     android:layout_width="wrap_content"  
  26.     android:layout_height="wrap_content"/>  
  27. <Button   
  28.     android:id="@+id/btn_get_select"  
  29.     android:text="获取选中文本"  
  30.     android:layout_width="wrap_content"  
  31.     android:layout_height="wrap_content"/>  
  32. </LinearLayout>  
 

HelloEditText修改如下:

Java代码  收藏代码
  1. package com.flysnow;  
  2.   
  3. import android.app.Activity;  
  4. import android.os.Bundle;  
  5. import android.text.Editable;  
  6. import android.text.Selection;  
  7. import android.view.KeyEvent;  
  8. import android.view.View;  
  9. import android.view.View.OnClickListener;  
  10. import android.widget.Button;  
  11. import android.widget.EditText;  
  12. import android.widget.TextView;  
  13. import android.widget.Toast;  
  14. import android.widget.TextView.OnEditorActionListener;  
  15. /** 
  16.  * EditText演示 
  17.  * @author 飞雪无情 
  18.  * @since 2010-11-29 
  19.  */  
  20. public class HelloEditText extends Activity {  
  21.     /** Called when the activity is first created. */  
  22.     @Override  
  23.     public void onCreate(Bundle savedInstanceState) {  
  24.         super.onCreate(savedInstanceState);  
  25.         setContentView(R.layout.main);  
  26.         final EditText editText=(EditText)findViewById(R.id.edit_text);  
  27.         //监听回车键  
  28.         editText.setOnEditorActionListener(new OnEditorActionListener() {  
  29.             @Override  
  30.             public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {  
  31.                 Toast.makeText(HelloEditText.this, String.valueOf(actionId), Toast.LENGTH_SHORT).show();  
  32.                 return false;  
  33.             }  
  34.         });  
  35.         //获取EditText文本  
  36.         Button getValue=(Button)findViewById(R.id.btn_get_value);  
  37.         getValue.setOnClickListener(new OnClickListener() {  
  38.             @Override  
  39.             public void onClick(View v) {  
  40.                 Toast.makeText(HelloEditText.this, editText.getText().toString(), Toast.LENGTH_SHORT).show();  
  41.             }  
  42.         });  
  43.         //让EditText全选  
  44.         Button all=(Button)findViewById(R.id.btn_all);  
  45.         all.setOnClickListener(new OnClickListener() {  
  46.             @Override  
  47.             public void onClick(View v) {  
  48.                 editText.selectAll();  
  49.             }  
  50.         });  
  51.         //从第2个字符开始选择EditText文本  
  52.         Button select=(Button)findViewById(R.id.btn_select);  
  53.         select.setOnClickListener(new OnClickListener() {  
  54.             @Override  
  55.             public void onClick(View v) {  
  56.                 Editable editable=editText.getText();  
  57.                 Selection.setSelection(editable, 1,editable.length());  
  58.             }  
  59.         });  
  60.       //获取选中的文本  
  61.         Button getSelect=(Button)findViewById(R.id.btn_get_select);  
  62.         getSelect.setOnClickListener(new OnClickListener() {  
  63.             @Override  
  64.             public void onClick(View v) {  
  65.                 int start=editText.getSelectionStart();  
  66.                 int end=editText.getSelectionEnd();  
  67.                 CharSequence selectText=editText.getText().subSequence(start, end);  
  68.                 Toast.makeText(HelloEditText.this, selectText, Toast.LENGTH_SHORT).show();  
  69.             }  
  70.         });  
  71.     }  
  72.     /** 
  73.      * 交换两个索引 
  74.      * @param start 开始索引 
  75.      * @param end 结束索引 
  76.      */  
  77.     protected void switchIndex(int start, int end) {  
  78.         int temp=start;  
  79.         start=end;  
  80.         end=temp;  
  81.     }  
  82. }  
 

 运行效果如下:



 可以通过输入文字和点击下面的按钮测试。


0 0