EditText常用方法

本文主要講述EditText的幾種常用方法。

1、監聽輸入變化

    editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {

        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
});

2、監聽刪除鍵

viewHolder.etText.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View view, int i, KeyEvent keyEvent) {
            if (i == KeyEvent.KEYCODE_DEL && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
                String text = viewHolder.etText.getText().toString();
                Log.i("shenlong", "deleting text=" + text);
                if (text.equals("")) {
                }
            }
                return false;
        }
});

這裏要注意,除了判斷KeyEvent是KEYCODE_DEL外,還要判斷是輸入的按下還是談起,不然這個onKey會走2遍的。

3、監聽觸摸

viewHolder.etText.setOnTouchListener(new View.OnTouchListener() {

    @Override
    public boolean onTouch(View view, MotionEvent motionEvent) {
        return false;
    }
});

4、imeOptions屬性使用

editText.setOnEditorActionListener(new OnEditorActionListener() {  
            @Override  
            public boolean onEditorAction(TextView v, int actionId,  
                    KeyEvent event) {  
                if (actionId == EditorInfo.IME_ACTION_SEARCH) {  
                    Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();  
                }  

                return false;  
            }  
        }); 

imeOptions屬性

android:imeOptions="flagNoExtractUi"  //使軟鍵盤不全屏顯示,只佔用一部分屏幕
同時,這個屬性還能控件軟鍵盤右下角按鍵的顯示內容,默認情況下爲回車鍵
android:imeOptions="actionNone"  //輸入框右側不帶任何提示
android:imeOptions="actionGo"    //右下角按鍵內容爲'開始'
android:imeOptions="actionSearch"  //右下角按鍵爲放大鏡圖片,搜索
android:imeOptions="actionSend"    //右下角按鍵內容爲'發送'
android:imeOptions="actionNext"   //右下角按鍵內容爲'下一步'
android:imeOptions="actionDone"  //右下角按鍵內容爲'完成'

另外,在貼一點inputType屬性

<EditText
    //電話號碼
    android:inputType="phone" 
    //文本類型,多爲大寫、小寫和數字符號。 
    android:inputType="none" 
    android:inputType="text" 
    android:inputType="textCapCharacters" //字母大寫 
    android:inputType="textCapWords" //首字母大寫 
    android:inputType="textCapSentences" //僅第一個字母大寫 
    android:inputType="textAutoCorrect" //自動完成 
    android:inputType="textAutoComplete" //自動完成 
    android:inputType="textMultiLine" //多行輸入 
    android:inputType="textImeMultiLine" //輸入法多行(如果支持) 
    android:inputType="textNoSuggestions" //不提示 
    android:inputType="textUri" //網址 
    android:inputType="textEmailAddress" //電子郵件地址 
    android:inputType="textEmailSubject" //郵件主題 
    android:inputType="textShortMessage" //短訊 
    android:inputType="textLongMessage" //長信息 
    android:inputType="textPersonName" //人名 
    android:inputType="textPostalAddress" //地址
    android:inputType="textPassword" //密碼 
    android:inputType="textVisiblePassword" //可見密碼
    android:inputType="textWebEditText" //作爲網頁表單的文本 
    android:inputType="textFilter" //文本篩選過濾 
    android:inputType="textPhonetic" //拼音輸入 
    //數值類型 
    android:inputType="number" //數字 
    android:inputType="numberSigned" //帶符號數字格式 
    android:inputType="numberDecimal" //帶小數點的浮點格式 
    android:inputType="datetime" //時間日期 
    android:inputType="date" //日期鍵盤 
    android:inputType="time" //時間鍵盤
    />

具體使用可以參考博客
EditText中imeOptions屬性使用及設置無效解決

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章