1. 程式人生 > >Android常用控制元件之EditText

Android常用控制元件之EditText

EditText

1.監聽器

addTextChangedListener :文字變化觀察者
setOnEditorActionListener: 鍵盤迴車事件

2.常用屬性

  • android:password=”true” 這條可以讓EditText顯示的內容自動為星號,輸入時內容會在1秒內變成*字樣。
  • android:numeric=”true” 這條可以讓輸入法自動變為數字輸入鍵盤,同時僅允許0-9的數字輸入
  • android:capitalize=”abcde” 這樣僅允許接受輸入abcde,一般用於密碼驗證
  • android:hint=”密碼” 設定顯示的提示資訊
  • android:maxLine=”2” 設定最多多少行
  • android:inputType=”number” 輸入型別
  • android:imeOptions=”actionDone” 鍵盤迴車的型別

        下面列出比較經常用到的幾個屬性以及替換的文字外觀:
      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 
    

3.輸入完成,關閉輸入法

有時候輸入完成,需要關閉輸入法,不然使用者體驗效果不好

    etQueryPhone.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            //關閉輸入法
            InputMethodManager inputMethodManager = (InputMethodManager)
                    QueryAddressActivity.this.getSystemService
                            (Context.INPUT_METHOD_SERVICE);
            inputMethodManager.hideSoftInputFromWindow(etQueryPhone.getWindowToken(), 0);
            return true;
        }
    });

4.抖動EditText

1.在res/anim下建立shake.xml檔案

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
           android:duration="1000"
           android:fromXDelta="0"
           android:interpolator="@anim/cycle_7"
           android:toXDelta="10">

    <!--duration為抖動時間,fromXDelta,toXDelta抖動幅度,interpolator是插補器-->

</translate>

2.在res/anim下建立cycle_7.xml

<?xml version="1.0" encoding="utf-8"?>
<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
                   android:cycles="6">

    <!--設定次數-->

</cycleInterpolator>

3.使用時

Animation shake = AnimationUtils.loadAnimation(QueryAddressActivity.this, R.anim.shake);
etQueryPhone.startAnimation(shake);