本文主要講述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屬性使用及設置無效解決