Android編程實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽(tīng)EditText文本輸入的方法
本文實(shí)例講述了Android編程實(shí)現(xiàn)實(shí)時(shí)監(jiān)聽(tīng)EditText文本輸入的方法。分享給大家供大家參考,具體如下:
平時(shí)在做Android開(kāi)發(fā)過(guò)程中經(jīng)常要用到EditText,有時(shí)候可能需要監(jiān)聽(tīng)你在TextView中輸入的字?jǐn)?shù)的狀態(tài)和變化,以便于我們能做相應(yīng)的提示和操作。我們可以通過(guò)下面的方式來(lái)實(shí)現(xiàn)。
class EditChangedListener implements TextWatcher {
private CharSequence temp;//監(jiān)聽(tīng)前的文本
private int editStart;//光標(biāo)開(kāi)始位置
private int editEnd;//光標(biāo)結(jié)束位置
private final int charMaxNum = 10;
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
if (DEBUG)
Log.i(TAG, "輸入文本之前的狀態(tài)");
temp = s;
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (DEBUG)
Log.i(TAG, "輸入文字中的狀態(tài),count是一次性輸入字符數(shù)");
mTvAvailableCharNum.setText("還能輸入" + (charMaxNum - s.length()) + "字符");
}
@Override
public void afterTextChanged(Editable s) {
if (DEBUG)
Log.i(TAG, "輸入文字后的狀態(tài)");
/** 得到光標(biāo)開(kāi)始和結(jié)束位置 ,超過(guò)最大數(shù)后記錄剛超出的數(shù)字索引進(jìn)行控制 */
editStart = mEditTextMsg.getSelectionStart();
editEnd = mEditTextMsg.getSelectionEnd();
if (temp.length() > charMaxNum) {
Toast.makeText(getApplicationContext(), "你輸入的字?jǐn)?shù)已經(jīng)超過(guò)了限制!", Toast.LENGTH_LONG).show();
s.delete(editStart - 1, editEnd);
int tempSelection = editStart;
mEditTextMsg.setText(s);
mEditTextMsg.setSelection(tempSelection);
}
}
};
加上監(jiān)聽(tīng)的事件。
mEditTextMsg.addTextChangedListener(new EditChangedListener());
效果圖:

更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android控件用法總結(jié)》、《Android開(kāi)發(fā)入門與進(jìn)階教程》、《Android視圖View技巧總結(jié)》、《Android編程之a(chǎn)ctivity操作技巧總結(jié)》、《Android數(shù)據(jù)庫(kù)操作技巧總結(jié)》及《Android資源操作技巧匯總》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- android同時(shí)控制EditText輸入字符個(gè)數(shù)和禁止特殊字符輸入的方法
- 全面解析Android中對(duì)EditText輸入實(shí)現(xiàn)監(jiān)聽(tīng)的方法
- Android文本輸入框(EditText)輸入密碼時(shí)顯示與隱藏
- Android之EditText控制禁止輸入空格和回車
- Android如何禁止向EditText控件中輸入內(nèi)容詳解
- Android UI設(shè)計(jì)系列之自定義EditText實(shí)現(xiàn)帶清除功能的輸入框(3)
- Android輸入框控件ClearEditText實(shí)現(xiàn)清除功能
- Android高級(jí)xml布局之輸入框EditText設(shè)計(jì)
- Android EditText限制輸入字?jǐn)?shù)的方法
- Android中多個(gè)EditText輸入效果的解決方式
相關(guān)文章
Android不規(guī)則封閉區(qū)域填充色彩的實(shí)例代碼
這篇文章主要介紹了Android不規(guī)則封閉區(qū)域填充色彩的實(shí)例代碼, 具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過(guò)來(lái)看看吧2018-05-05
Android實(shí)戰(zhàn)項(xiàng)目之實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器
隨著移動(dòng)互聯(lián)網(wǎng)的普及,手機(jī)應(yīng)用程序已經(jīng)成為人們生活中不可或缺的一部分,計(jì)算器是一類被廣泛使用的應(yīng)用程序之一,這篇文章主要給大家介紹了關(guān)于Android實(shí)戰(zhàn)項(xiàng)目之實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器的相關(guān)資料,需要的朋友可以參考下2023-10-10
Android中RecyclerView嵌套滑動(dòng)沖突解決的代碼片段
這篇文章主要為大家詳細(xì)介紹了Android中RecyclerView嵌套滑動(dòng)沖突解決的代碼片段,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
Android開(kāi)發(fā)入門之Notification用法分析
這篇文章主要介紹了Android中Notification用法,較為詳細(xì)的分析了Notification的功能、使用步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-07-07
Android百度定位導(dǎo)航之基于百度地圖移動(dòng)獲取位置和自動(dòng)定位
項(xiàng)目需求是這樣的,首先定位我當(dāng)前的起始位置,并跟隨移動(dòng)不斷自動(dòng)定位我的當(dāng)前位置,下面通過(guò)本文給大家介紹android百度定位導(dǎo)航之基于百度地圖移動(dòng)獲取位置和自動(dòng)定位,需要的朋友參考下2016-01-01
Android實(shí)現(xiàn)從底部彈出的Dialog的實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)從底部彈出的Dialog的實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值 ,需要的朋友可以參考下2018-04-04
Android開(kāi)發(fā)中總結(jié)的Adapter工具類【附完整源碼下載】
這篇文章主要介紹了Android開(kāi)發(fā)中總結(jié)的Adapter工具類,簡(jiǎn)單說(shuō)明了Adapter的功能,并結(jié)合實(shí)例形式分析了Adapter工具類的相關(guān)使用方法,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下2017-11-11

