日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发之EditText限制输入中文以及字数长度限制的标准姿势

發布時間:2023/12/15 Android 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发之EditText限制输入中文以及字数长度限制的标准姿势 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

老套路先上效果圖:

設置輸入框的兩個篩選器:

etGiftName.setFilters(new InputFilter[]{new ZsInputFilter(5,this), new LengthListener(5,this)});

我們來看下篩選器如何實現的:

先看中文篩選器

package com.yhsh.mobile.giftcomponent;import android.app.Activity; import android.text.InputFilter; import android.text.Spanned; import android.widget.Toast;/*** @author 下一頁5(輕飛揚)* 創建時間:2019/8/4 16:38* 個人小站:http://yhsh.wap.ai(已掛)* 空間名稱:group-wallet-android* 限制中文輸入篩選器*/ public class ZsInputFilter implements InputFilter {private Activity mActivity;private int maxValue;public ZsInputFilter(int maxValue, Activity shopPayActivity) {this.maxValue = maxValue;mActivity = shopPayActivity;}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {for (int i = start; i < end; i++) {if (!isChinese(source.charAt(i))) {Toast.makeText(mActivity, "只能輸入中文", Toast.LENGTH_SHORT).show();return "";} else {//是中文,提示最多5個漢字if (source.length() >= maxValue) {Toast.makeText(mActivity, "最多只能輸入" + maxValue + "個漢字", Toast.LENGTH_SHORT).show();}}}return null;}private static boolean isChinese(char c) {String regex = "[\\u4e00-\\u9fa5]";return String.valueOf(c).matches(regex);} }

再看下長度篩選器:

package com.yhsh.mobile.giftcomponent;import android.app.Activity; import android.text.InputFilter; import android.text.Spanned; import android.widget.Toast;/*** @author 下一頁5(輕飛揚)* 創建時間:2019/8/5 10:21* 個人小站:http://yhsh.wap.ai(已掛)* 空間名稱:group-wallet-android*/ public class LengthListener implements InputFilter {private final int mMax;private Activity mActivity;public LengthListener(int max, Activity activity) {mMax = max;mActivity = activity;}@Overridepublic CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {int keep = mMax - (dest.length() - (dend - dstart));if (keep <= 0) {Toast.makeText(mActivity, "最多只能輸入" + mMax + "個漢字", Toast.LENGTH_SHORT).show();return "";} else if (keep >= end - start) {return null;} else {keep += start;if (Character.isHighSurrogate(source.charAt(keep - 1))) {--keep;if (keep == start) {return "";}}return source.subSequence(start, keep);}}/*** @return the maximum length enforced by this input filter*/public int getMax() {return mMax;} }

?

總結

以上是生活随笔為你收集整理的Android开发之EditText限制输入中文以及字数长度限制的标准姿势的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。