package com.parttime.common.activity; import android.app.Activity; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.qingmu.jianzhidaren.R; /** * * Created by dehua on 15/8/2. */ public class EditTextLimitChar { private Activity activity ; private int MAX_COUNT ; private TextView tipView; private EditText contentEdTxt; public EditTextLimitChar(Activity activity, int maxCount, String initContent,EditText contentEdTxt, TextView tipView){ this.activity = activity; MAX_COUNT = maxCount; this.tipView = tipView; this.contentEdTxt = contentEdTxt; if(initContent == null || initContent.length() == 0){ tipView.setText(activity.getString(R.string.content_text_count, 0, MAX_COUNT)); }else{ contentEdTxt.setText(initContent); tipView.setText(activity.getString(R.string.content_text_count, initContent.length(), MAX_COUNT)); } contentEdTxt.addTextChangedListener(editChangeListener); } private TextWatcher editChangeListener = new TextWatcher() { private int editStart;//光标开始位置 private int editEnd;//光标结束位置 @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { int contentLength = start + count; if(contentLength > MAX_COUNT){ Toast.makeText(activity, activity.getString(R.string.group_notice_max_count_tip, MAX_COUNT), Toast.LENGTH_SHORT).show(); return ; } tipView.setText(activity.getString(R.string.content_text_count, contentLength, MAX_COUNT)); } @Override public void afterTextChanged(Editable s) { if(s.length() > MAX_COUNT) { editStart = contentEdTxt.getSelectionStart(); editEnd = contentEdTxt.getSelectionEnd(); s.delete(editStart - 1, editEnd); contentEdTxt.setText(s); contentEdTxt.setSelection(MAX_COUNT); } } }; }