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"

---------------------------------------------------------------------------------------

默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘

设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭

android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个   在这里设置的imeOptions如何使用呢?如下面的代码,让EditText实现 setOnEditorActionListener在onEditAction方法中actionId就对应我们设置的imeOptions。系统默认的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。这样我们就可以根据不同的EditText来实现不同的软键盘右下角功能键。
public class IMFActivity extends Activity implements OnEditorActionListener {    
       EditText etDefault;      EditText etEmail;      EditText etNumber;             /** Called when the activity is first created. */      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.imf_layout);                    etDefault = (EditText)findViewById(R.id.default_content);          etEmail = (EditText)findViewById(R.id.email_content);          etNumber = (EditText)findViewById(R.id.number_content);          etDefault.setOnEditorActionListener(this);          etEmail.setOnEditorActionListener(this);          etNumber.setOnEditorActionListener(this);              }        @Override      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {          switch(actionId){          case EditorInfo.IME_NULL:              System.out.println("null for default_content: " + v.getText() );              break;          case EditorInfo.IME_ACTION_SEND:              System.out.println("action send for email_content: "  + v.getText());              break;          case EditorInfo.IME_ACTION_DONE:              System.out.println("action done for number_content: "  + v.getText());              break;          }          //Toast.makeText(this, v.getText()+"--" + actionId, Toast.LENGTH_LONG).show();          return true;      }  }  
<?xml version="1.0" encoding="utf-8"?>  <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"      android:layout_width="fill_parent" android:layout_height="fill_parent">      <TableLayout android:layout_width="fill_parent"          android:layout_height="fill_parent">          <TableRow>              <EditText android:text="1111111111111" android:id="@+id/default_content"                  android:layout_width="fill_parent" android:layout_height="wrap_content">EditText>          TableRow>          <TableRow>              <EditText android:text="" android:id="@+id/email_content"                  android:layout_width="fill_parent" android:layout_height="wrap_content"                  android:inputType="text|textEmailAddress"                  android:imeOptions="actionSend">EditText>          TableRow>          <TableRow>              <EditText android:text="" android:id="@+id/number_content"                  android:layout_width="fill_parent" android:layout_height="wrap_content"                  android:inputType="number|numberSigned|numberDecimal"                  android:imeOptions="actionDone">EditText>          TableRow>      TableLayout>  ScrollView>  

更多相关文章

  1. Eclipse中解决自动补齐失效和完善Android自动补齐功能
  2. Android事情记载
  3. Android(安卓)SpannableStringBuilder可以实现一个TextView多种
  4. Android之开源控件ViewFLow学习笔记【含下载地址】--(原创-201504
  5. 使用SpannableString设置部分文字大小、颜色、超链接、点击事件
  6. Android——ImageView.ScaleType设置图解
  7. Android(安卓)windowTranslucentStatus属性源码分析
  8. Android(安卓)第十三课——ListView ListActivity SimpleAdapter
  9. android 键盘 send按钮

随机推荐

  1. 【职业学习规划】Android架构师方向
  2. 下载、编译官方Android 4.1.2 源码
  3. Android指定Toast显示的位置并用Toast显
  4. Android 使用AIDL实现守护进程
  5. Android 平台根目录文件
  6. android html5 jw-player
  7. Android(安卓)颜色透明度换算
  8. android WebView渲染html
  9. [Kotlin Tutorials 14] Kotlin Coroutine
  10. Android 获取系统短信内容