欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android實(shí)現(xiàn) EditText輸入手機(jī)號(hào)空格功能

 更新時(shí)間:2018年02月01日 11:08:44   作者:Good包籽  
這篇文章主要介紹了Android實(shí)現(xiàn) EditText輸入手機(jī)號(hào)空格功能,實(shí)現(xiàn)思路是要重寫TextWatcher,每次EditText內(nèi)容變化,都判斷內(nèi)容是否符合要求,具體實(shí)例代碼大家參考下本文

Android EditText輸入手機(jī)號(hào)空格

  • 開發(fā)需求是在登錄頁(yè)面的手機(jī)EditText中間插入空格,讓用戶看起來(lái)方便點(diǎn), 130 1234 4567,中間第4個(gè)數(shù)字和第5個(gè)數(shù)字空格前面加空格。
  • 要求還有一點(diǎn),就是除了輸入要加入空格,從其他地方復(fù)制過(guò)來(lái)的電話號(hào)碼,沒有空格的,也要在粘貼后,自動(dòng)補(bǔ)全空格。
  • 思路:重寫TextWatcher,每次EditText內(nèi)容變化,都判斷內(nèi)容是否符合要求。
@Override
public void afterTextChanged(Editable s)
{
 //需求是130 1234 4567,中間第4個(gè)數(shù)字和第5個(gè)數(shù)字空格前面加空格
 StringBuffer sb = new StringBuffer(s);
 //StringBuffer.length()是長(zhǎng)度,所以下標(biāo)從1開始
 //字符數(shù)組第4位如果不是空格字符,就在他前面插一個(gè)空格字符
 if (s.length() >= 4)
 {
  char[] chars = s.toString().toCharArray();
  //數(shù)字下標(biāo)是從0開始
  if (chars[3] != ' ')
  {
   sb.insert(3,' ');
   setContent(sb);
  }
 }
 if (s.length() >= 9)
 {
  char[] chars = s.toString().toCharArray();
  //因?yàn)榈?位加了一個(gè)空格,所以第8位數(shù)字,就是字符數(shù)組的第9位,下標(biāo)是8。
  if (chars[8] != ' ')
  {
   sb.insert(8,' ');
   setContent(sb);
  }
 }
}

使用,就是把EditText內(nèi)容監(jiān)聽換成自己寫的。

etPhone.addTextChangedListener(new PhoneTextWatcher(etPhone)
{
 @Override
 public void afterTextChanged(Editable s)
 {
  //如果還要做的監(jiān)聽事情,可以繼續(xù)寫
  super.afterTextChanged(s);
 }
});

完整代碼,里面有一個(gè)別人的方法,就這方法是粘貼時(shí),空格不自動(dòng)補(bǔ)全:

http://www.dbjr.com.cn/article/134183.htm

/**
 * Created by solexit04 on 2017/9/4.
 * 手機(jī)號(hào)中間插入空格
 */
public class PhoneTextWatcher implements TextWatcher
{
 private EditText editText;
 private boolean isDelete;
 private int lastContentLength;
 public PhoneTextWatcher(EditText editText)
 {
  this.editText = editText;
 }
 @Override
 public void beforeTextChanged(CharSequence s, int start, int count, int after)
 {
 }
 @Override
 public void onTextChanged(CharSequence s, int start, int before, int count)
 {
  /* StringBuffer sb = new StringBuffer(s);
  //是否為輸入狀態(tài)
  isDelete = s.length() > lastContentLength ? false : true;
  //輸入是第4,第9位,這時(shí)需要插入空格
  if (!isDelete && (s.length() == 4 || s.length() == 9))
  {
   if (s.length() == 4)
   {
    sb.insert(3, " ");
   } else
   {
    sb.insert(8, " ");
   }
   setContent(sb);
  }
  //刪除的位置到4,9時(shí),剔除空格
  if (isDelete && (s.length() == 4 || s.length() == 9))
  {
   sb.deleteCharAt(sb.length() - 1);
   setContent(sb);
  }
  lastContentLength = sb.length();*/
 }
 @Override
 public void afterTextChanged(Editable s)
 {
  //需求是130 1234 4567,中間第4個(gè)數(shù)字和第5個(gè)數(shù)字空格前面加空格
  StringBuffer sb = new StringBuffer(s);
  //StringBuffer.length()是長(zhǎng)度,所以下標(biāo)從1開始
  //字符數(shù)組第4位如果不是空格字符,就在他前面插一個(gè)空格字符
  if (s.length() >= 4)
  {
   char[] chars = s.toString().toCharArray();
   //數(shù)字下標(biāo)是從0開始
   if (chars[3] != ' ')
   {
    sb.insert(3,' ');
    setContent(sb);
   }
  }
  if (s.length() >= 9)
  {
   char[] chars = s.toString().toCharArray();
   //因?yàn)榈?位加了一個(gè)空格,所以第8位數(shù)字,就是字符數(shù)組的第9位,下標(biāo)是8。
   if (chars[8] != ' ')
   {
    sb.insert(8,' ');
    setContent(sb);
   }
  }
 }
 /**
  * 添加或刪除空格EditText的設(shè)置
  */
 private void setContent(StringBuffer sb)
 {
  editText.setText(sb.toString());
  //移動(dòng)光標(biāo)到最后面
  editText.setSelection(sb.length());
 }
}

總結(jié)

以上所述是小編給大家介紹的Android實(shí)現(xiàn) EditText輸入手機(jī)號(hào)空格功能,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Android入門之Service的使用詳解

    Android入門之Service的使用詳解

    我們的Android在啟動(dòng)一些長(zhǎng)事務(wù)時(shí)都會(huì)使用異步,很多初學(xué)者覺得這個(gè)異步就是一個(gè)異步線程+Handler而己。如果你這么想就錯(cuò)了。這一切其實(shí)靠的正是Android里的Service。本文就來(lái)和大家聊聊Service的生命周期和使用,需要的可以參考一下
    2022-12-12
  • Android中如何使用Glide加載圖像

    Android中如何使用Glide加載圖像

    大家好,本篇文章主要講的是Android中如何使用Glide加載圖像,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Android實(shí)現(xiàn)圖片異步加載及本地緩存

    Android實(shí)現(xiàn)圖片異步加載及本地緩存

    這篇文章主要介紹了Android實(shí)現(xiàn)圖片異步加載及本地緩存的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • Android實(shí)現(xiàn)recyclerview城市字母索引列表

    Android實(shí)現(xiàn)recyclerview城市字母索引列表

    大家好,本篇文章主要講的是Android實(shí)現(xiàn)recyclerview城市字母索引列表,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • Android之FanLayout制作圓弧滑動(dòng)效果

    Android之FanLayout制作圓弧滑動(dòng)效果

    這篇文章主要介紹了Android之FanLayout制作圓弧滑動(dòng)效果,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Flutter系統(tǒng)網(wǎng)絡(luò)圖片加載流程解析

    Flutter系統(tǒng)網(wǎng)絡(luò)圖片加載流程解析

    這篇文章主要介紹了Flutter系統(tǒng)網(wǎng)絡(luò)圖片加載流程,從構(gòu)造函數(shù)開始說(shuō)起,我們以最簡(jiǎn)單的調(diào)用方式舉例,當(dāng)我們使用Image.network(imageUrl)這種方式來(lái)顯示圖片時(shí),Image組件內(nèi)部image屬性就會(huì)被賦值NetworkImage,具體操作步驟跟隨小編一起看看吧
    2022-05-05
  • Android編程單選項(xiàng)框RadioGroup綜合應(yīng)用示例

    Android編程單選項(xiàng)框RadioGroup綜合應(yīng)用示例

    這篇文章主要介紹了Android編程單選項(xiàng)框RadioGroup用法,結(jié)合實(shí)例形式分析了Android單選按鈕組RadioGroup的定義與具體使用技巧,需要的朋友可以參考下
    2016-10-10
  • Android用注解與反射實(shí)現(xiàn)Butterknife功能

    Android用注解與反射實(shí)現(xiàn)Butterknife功能

    Butterknife是一個(gè)在android上實(shí)現(xiàn)ioc(控制反轉(zhuǎn))的一個(gè)庫(kù)。ioc的核心是解耦。解耦的目的是修改耦合對(duì)象時(shí)不影響另外一個(gè)對(duì)象,降低模塊之間的關(guān)聯(lián)。在Spring中ioc更多的是依靠xml的配置。而android上的IOC框架可以不使用xml配置
    2022-11-11
  • Android使用 Spinner控件實(shí)現(xiàn)下拉框功能

    Android使用 Spinner控件實(shí)現(xiàn)下拉框功能

    Spinner是android的一種控件,用它我們可以實(shí)現(xiàn)下拉框。下面通過(guò)實(shí)例代碼給大家介紹Android使用 Spinner控件實(shí)現(xiàn)下拉框功能,感興趣的朋友一起看看吧
    2018-08-08
  • 一文深入探討Android Activity啟動(dòng)模式

    一文深入探討Android Activity啟動(dòng)模式

    在 Android 應(yīng)用開發(fā)中,Activity 是用戶界面的核心組件,而 Activity 的啟動(dòng)模式則是決定應(yīng)用界面如何在任務(wù)棧中交互、管理以及呈現(xiàn)的關(guān)鍵因素,本文將深入探討 Android 中的 Activity 啟動(dòng)模式,詳細(xì)解釋每種模式的用途、適用場(chǎng)景
    2023-08-08

最新評(píng)論