亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android EditText限制輸入字符類型的方法總結(jié)

 更新時間:2017年03月07日 15:13:21   投稿:lqh  
這篇文章主要介紹了Android EditText限制輸入字符類型的方法總結(jié)的相關(guān)資料,需要的朋友可以參考下

Android EditText限制輸入字符類型的方法總結(jié)

前言:

最近的項目上需要限制EditText輸入字符的類型,就把可以實現(xiàn)這個功能的方法整理了一下:

1、第一種方式是通過EditText的inputType來實現(xiàn),可以通過xml或者Java文件來設(shè)置。假如我要設(shè)置為顯示密碼的形式,可以像下面這樣設(shè)置:

在xml中

 Android:inputType="textPassword"

在java文件中,可以用 myEditText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
當(dāng)然,還有更多的其他屬性用來進(jìn)行輸入設(shè)置。

2、第二種是通過android:digits 屬性來設(shè)置,這種方式可以指出要顯示的字符,比如我要限制只顯示數(shù)字,可以這樣:

   android:digits="0123456789"

如果要顯示的內(nèi)容比較多,就比較麻煩了,將要顯示的內(nèi)容依次寫在里面。

3、通過正則表達(dá)式來判斷。下面的例子只允許顯示字母、數(shù)字和漢字。

public static String stringFilter(String str)throws PatternSyntaxException{   
   // 只允許字母、數(shù)字和漢字   
   String  regEx = "[^a-zA-Z0-9\u4E00-\u9FA5]";           
   Pattern  p  =  Pattern.compile(regEx);   
   Matcher  m  =  p.matcher(str);   
   return  m.replaceAll("").trim();   
 }

然后需要在TextWatcher的onTextChanged()中調(diào)用這個函數(shù),

@Override 
   public void onTextChanged(CharSequence ss, int start, int before, int count) { 
     String editable = editText.getText().toString(); 
     String str = stringFilter(editable.toString());
     if(!editable.equals(str)){
       editText.setText(str);
       //設(shè)置新的光標(biāo)所在位置 
       editText.setSelection(str.length());
     }
   } 

4、通過InputFilter來實現(xiàn)。

實現(xiàn)InputFilter過濾器,需要覆蓋一個叫filter的方法。

public abstract CharSequence filter ( 
  CharSequence source, //輸入的文字 
  int start, //開始位置 
  int end, //結(jié)束位置 
  Spanned dest, //當(dāng)前顯示的內(nèi)容 
  int dstart, //當(dāng)前開始位置 
  int dend //當(dāng)前結(jié)束位置 
);

下面的實現(xiàn)使得EditText只接收字符(數(shù)字、字母和漢字)和“-”“_”,Character.isLetterOrDigit會把中文也當(dāng)做Letter。

editText.setFilters(new InputFilter[] { 
new InputFilter() { 
  public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart,
 int dend) { 
      for (int i = start; i < end; i++) { 
          if ( !Character.isLetterOrDigit(source.charAt(i)) && !Character.toString(source.charAt(i)) .equals("_") && !Character.toString(source.charAt(i)) .equals("-"))
 { 
              return ""; 
          } 
      } 
      return null; 
  } }); 

另外使用InputFilter還能限制輸入的字符個數(shù),如   

  EditText tv =newEditText(this); 

    int maxLength =10; 

    InputFilter[] fArray =new InputFilter[1]; 

    fArray[0]=new InputFilter.LengthFilter(maxLength); 

    tv.setFilters(fArray);

上面的代碼可以限制輸入的字符數(shù)最大為10。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Android自定義控件簡單實現(xiàn)側(cè)滑菜單效果

    Android自定義控件簡單實現(xiàn)側(cè)滑菜單效果

    這篇文章主要為大家詳細(xì)介紹了Android自定義控件打造史上最簡單的側(cè)滑菜單的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Android Settings 按住電源按鈕的操作方法

    Android Settings 按住電源按鈕的操作方法

    這篇文章主要介紹了Android Settings 按住電源按鈕的操作方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-01-01
  • Android仿泡泡窗實現(xiàn)下拉菜單條實例代碼

    Android仿泡泡窗實現(xiàn)下拉菜單條實例代碼

    最近參與android的項目開發(fā),其中遇到這樣的需求:點擊下拉按鈕,顯示出所有的條目,有刪除和點擊功能,點擊后將條目顯示。下面通過實例代碼給大家介紹下Android仿泡泡窗實現(xiàn)下拉菜單條效果,需要的朋友參考下吧
    2017-05-05
  • 實例講解Android應(yīng)用開發(fā)中TabHost的使用要點

    實例講解Android應(yīng)用開發(fā)中TabHost的使用要點

    這篇文章主要介紹了Android應(yīng)用開發(fā)中TabHost的使用要點,文中以實例講解了TabHost與Tab的布局方法,需要的朋友可以參考下
    2016-04-04
  • Android 使用VideoView播放MP4的簡單實現(xiàn)

    Android 使用VideoView播放MP4的簡單實現(xiàn)

    這篇文章主要介紹了Android 使用VideoView播放MP4的簡單實現(xiàn),實現(xiàn)簡單的播放功能,播放手機(jī)本地的MP4文件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Android編程動態(tài)修改RelativeLayout寬高的方法

    Android編程動態(tài)修改RelativeLayout寬高的方法

    這篇文章主要介紹了Android編程動態(tài)修改RelativeLayout寬高的方法,涉及Android動態(tài)布局的相關(guān)技巧,需要的朋友可以參考下
    2015-12-12
  • Android視圖的繪制流程(上) View的測量

    Android視圖的繪制流程(上) View的測量

    這篇文章主要為大家詳細(xì)介紹了Android視圖的繪制流程上篇,View測量的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Android實現(xiàn)app應(yīng)用多語言切換功能

    Android實現(xiàn)app應(yīng)用多語言切換功能

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)app應(yīng)用多語言切換功能的相關(guān)資料,類似于微信的語言切換,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Android4.X中SIM卡信息初始化過程詳解

    Android4.X中SIM卡信息初始化過程詳解

    這篇文章主要介紹了Android4.X中SIM卡信息初始化過程,較為詳細(xì)的分析總結(jié)了Android4.X中SIM卡信息初始化的步驟及相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android網(wǎng)絡(luò)技術(shù)HttpURLConnection詳解

    Android網(wǎng)絡(luò)技術(shù)HttpURLConnection詳解

    這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)絡(luò)技術(shù)HttpURLConnection的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07

最新評論