91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android EditTextView 實現帶空格分隔的輸入(電話號碼,銀行卡)

發布時間:2020-10-01 14:01:59 來源:腳本之家 閱讀:396 作者:Ryhume 欄目:移動開發

電話號碼輸入框需求:

  • 三位,七位后有空格
  • 刪除倒數第四,第八位會將空格也刪除

使用TextWatcher

When an object of a type is attached to an Editable, its methods will be called when the text is changed.就是說,只要是一個可編輯的文本設置了TextWatcher,當文本發生變化時,TextWatcher里的方法將會被調用.

其實不難,看了網上搜索到的例子,思路繞了點,這邊做一份自己的記錄

import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;
/**
 * @desc
 * @autor Xemenes
 * @time 2017/5/12 10:18
 */
public class PhoneNumberTextWatcher implements TextWatcher {
  EditText editText;
  int lastContentLength = 0;
  boolean isDelete = false;
  public PhoneNumberTextWatcher(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);
    //是否為輸入狀態
    isDelete = s.length() > lastContentLength ? false : true;
    //輸入是第4,第9位,這時需要插入空格
    if(!isDelete&& (s.length() == 4||s.length() == 9)){
      if(s.length() == 4) {
        sb.insert(3, " ");
      }else {
        sb.insert(8, " ");
      }
      setContent(sb);
    }
    //刪除的位置到4,9時,剔除空格
    if (isDelete && (s.length() == 4 || s.length() == 9)) {
      sb.deleteCharAt(sb.length() - 1);
      setContent(sb);
    }
    lastContentLength = sb.length();
  }
  @Override
  public void afterTextChanged(Editable s) {
  }
  /**
   * 添加或刪除空格EditText的設置
   *
   * @param sb
   */
  private void setContent(StringBuffer sb) {
    editText.setText(sb.toString());
    //移動光標到最后面
    editText.setSelection(sb.length());
  }
}

總結

以上所述是小編給大家介紹的Android EditTextView 實現帶空格分隔的輸入(電話號碼,銀行卡),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秭归县| 石嘴山市| 宜州市| 博野县| 罗田县| 台前县| 瑞金市| 珲春市| 房山区| 明星| 广丰县| 方山县| 洛扎县| 安乡县| 镇沅| 信丰县| 璧山县| 东乌珠穆沁旗| 乾安县| 炉霍县| 平潭县| 成武县| 景泰县| 兴和县| 福鼎市| 平阴县| 兖州市| 叙永县| 仁寿县| 铜川市| 桐梓县| 莒南县| 农安县| 彩票| 大理市| 高要市| 苏尼特左旗| 方正县| 武功县| 龙海市| 名山县|