Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中EditText的字數的限制實現

Android中EditText的字數的限制實現

編輯:關於Android編程

先上代碼:

import java.io.UnsupportedEncodingException;

import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.widget.EditText;

/**
 * edittext監聽器,用於限制字數,如果字數超過,則自動捨棄,並通過toast提示
 * 
 * @author kyson
 * 
 */
public class EditTextWatcher implements TextWatcher {

	private static final String TAG = "EditTextWatcher";

	private CharSequence temp;
	private int selectionStart;
	private int selectionEnd;
	// 字數限制
	private int range = 3;
	// 提示的信息
	private String infoString;
	private Activity mActivity;
	private EditText mEditText;

	// 構造函數
	public EditTextWatcher(Activity activity, EditText text) {
		super();

		this.mActivity = activity;
		this.mEditText = text;
	}

	// 設置toast提示信息
	public void setInfomation(String infoString, int range) {
		this.range = range;
		this.infoString = infoString;
	}

	public void onTextChanged(CharSequence s, int start, int before, int count) {
		// TODO Auto-generated method stub
		temp = s;
	}

	public void beforeTextChanged(CharSequence s, int start, int count, int after) {
		// TODO Auto-generated method stub
	}

	public void afterTextChanged(Editable s) {
		//for some reason , we should substract one
		int textLength = 0 ;
		try {
			//we should speciafy the encode ->gbk
			textLength = temp.toString().getBytes("gbk").length;
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		if ( textLength > range) {
			selectionStart = mEditText.getSelectionStart();
			selectionEnd = mEditText.getSelectionEnd();
			// Toast.makeText(EditTextWatcher.this.mActivity, infoString,
			// Toast.LENGTH_SHORT).show();
			ToastUtils.show(EditTextWatcher.this.mActivity, infoString);
			s.delete(selectionStart - 1, selectionEnd);
			int tempSelection = selectionStart - 1;
			Log.v(TAG, "輸入的信息為:" + s + "infoString" + infoString + "range:" + range);
			mEditText.setText(s);
			mEditText.setSelection(tempSelection);
		}

	}

}


  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved