1. 程式人生 > >Edittext限制輸入漢字50英文100

Edittext限制輸入漢字50英文100

【android:maxLength="50"  限制漢字50個】

AddLengthFilter.lengthFilter(this, et_explain, 100, "超出範圍");

/**

 * 長度監聽過濾
 * 
 * @version v1.0
 * EditText輸入中文和英文長度監聽,中文按兩個字元,英文按一個字元,監聽輸入的長度,在你需要呼叫的地方新增:
 * AddLengthFilter.lengthFilter(this, nameEt, 32, "提示資訊"));
 * @author
 */
public class AddLengthFilter implements InputFilter {


public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
return null;
}


// 長度監聽
public static void lengthFilter(final Context context,
final EditText editText, final int max_length, final String err_msg) {
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(max_length) {
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
// 獲取字元個數(一箇中文算2個字元)
int destLen = getCharacterNum(dest.toString());
int sourceLen = getCharacterNum(source.toString());


if (destLen + sourceLen > max_length) {
Toast.makeText(context, err_msg, Toast.LENGTH_SHORT).show();
return "";
}
return source;
}
};
editText.setFilters(filters);
}


/**
* @description 獲取一段字串的字元個數(包含中英文,一箇中文算2個字元)
* @param content
* @return
*/
public static int getCharacterNum(final String content) {
if (null == content || "".equals(content)) {
return 0;
} else {
return (content.length() + getChineseNum(content));
}
}


/**
* @description 返回字串裡中文字或者全形字元的個數
* @param s
* @return
*/
public static int getChineseNum(String s) {
int num = 0;
char[] myChar = s.toCharArray();
for (int i = 0; i < myChar.length; i++) {
if ((char) (byte) myChar[i] != myChar[i]) {
num++;
}
}
return num;
}


}

相關推薦

Edittext限制輸入漢字50英文100

【android:maxLength="50"  限制漢字50個】 AddLengthFilter.lengthFilter(this, et_explain, 100, "超出範圍"); /**  * 長度監聽過濾  *   * @version v1.0  * Edi

EditText限制輸入內容為1-100範圍內的數字

首先在佈局檔案中,設定inputType為number,且maxLength=3;然後設定監聽輸入,程式碼如下 public TextWatcher inputWatch(final EditText input) { return new

需求:EditText限制 輸入20個字母。10個漢字

  afterTextChanged方法。 private final int MAX_CHAR_NUM = 20;    mSearchEditText.addTextChangedListener(new SimpleTextWatcher() {         

Android EditText 限制輸入為ip類型

text ins TE sta digits listen andro color num editText.setInputType(InputType.TYPE_CLASS_NUMBER); String digits = "01234

EditText限制輸入換行

/** * 限制回車換行 * * @param et 輸入框 */ public static void LimitsEditEnter(EditText et) { et.setOnEditorActionListener(new OnEditorActionLis

edittext限制輸入小數點後一位

.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int

EditText限制輸入字元型別

最近有一個EditText內只能輸入數字,字母,漢字的字元型別限制,隨手整理一下,有新的內容以後在做修改 fun stringFilter(str: String): String { val regEx = "[^a-zA-Z0-9\u4E00-\u9

EditText 限制輸入為中文,個數為6個

et_real_name.setFilters(new InputFilter[]{new InputChineseFilter(6)});
 class InputChineseFilter implements InputFilter { private final

Android EditText限制輸入字元的5種實現方式

         最近專案要求限制密碼輸入的字元型別, 例如不能輸入中文。   現在總結一下EditText的各種實現方式,  以比較各種方法的優劣。  第一種方式:  設定EditText的inputType屬性,可以通過xml或者java檔案來設定。假如我要設定為顯示

Android EditText 限制輸入的字數

共有兩種方法,第一種是在xml中直接設定,第二種是在程式碼中設定。 ** 在xml中設定 ** android:maxLength=”10” 代表限制輸入的字數最大為10 <Edi

Android EditText 限制輸入數字和字母設定

在xml:EditText 設定屬性----android:digis="ABCDE555555&&&&&"ABCDE555555&&&&&"是你的限制規則。例如:android:digits="

(轉)EditText限制輸入字元型別的幾種方式

轉載自: 1、第一種方式是通過EditText的inputType來實現,可以通過xml或者Java檔案來設定。假如我要設定為顯示密碼的形式,可以像下面這樣設定: 在xml中,   Android:inputType="textPassword" 在java檔案中,

EditText限制輸入的字元數並彈出Toast提示字數已達上限

大家對EditText這個控制元件並不陌生,它是一個可供我們輸入文字內容的輸入框。前些日子需要實現這樣一個需求:限制EditText中可以輸入的最大字元數為6,達到6時,使用者每按一次軟鍵盤就彈出一個Toast提示使用者,並且無法再輸入內容。就像下圖的效果:

EditText限制輸入型別為英數字並限制長度

方法一: EditText標籤下增加以下屬性: android:maxLength="18" android:digits="1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM" 方法二: 通過T

EditText限制輸入字數,並且禁止輸入表情符號

場景:在EditText輸入表情符號,但傳送到伺服器之後,變成了問好,因為伺服器無法識別。 解決方案:ContainsEmojiEditText,通過輸入字元的長度,判斷是否為表情符號。 import android.content.Context; import andr

Edittext限制輸入字元長度,解決中英文混用情況保證規定長度

好比知乎中的提問流程,提問內容不應該太長,所以會進行事先設定;最後我使用InputFilter解決了這個問題,程式碼如下。         首先普及一下GB18030編碼標準:GB 18030,全稱:國家標準 GB 18030-2005《資訊科技中文編碼字符集》,是中華人民

Edittext 限制輸入小數位數 判斷輸入是否為數字

在APP中用到Edittext的時候經常會遇到輸入限制的問題, 1.在限制輸入型別為double的數字時就需要做兩步判斷, <EditTextandroid:layout_width="wrap_content" android:layout_height="wra

Android-EditText控制輸入範圍在0~100之間

需求是,在EditText中輸入數字,而且數字範圍在0到100。貼出程式碼如下: edit.addTextChangedListener(new TextWatcher(){

input輸入限制輸入英文,數字,漢字

get put 中文 repl turn value 下劃線 function fun <h1>js驗證輸入框內容</h1><br /><br /> 只能輸入英文<input type="text" onkeyup="v

Android中EditText限制僅允許輸入漢字/僅允許漢字和數字

最近專案各種需求,各種更改,之前的需求是editText只要不是數字就ok了. 現在需求改為只允許輸入漢字,採用正則表示式完成. @BindView(R2.id.et_other_college) EditText etOtherCollege; 自定義一個方法: publ