package com.jasonchen.microlang.utils; import android.app.Activity; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; import android.widget.TextView; import com.jasonchen.microlang.R; import com.jasonchen.microlang.smilepicker.SmileyMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * jasonchen * 2015/04/10 */ public class TextNumLimitWatcher implements TextWatcher { private TextView tv; private EditText et; private Activity activity; private Map<String,String> map; public TextNumLimitWatcher(TextView tv, EditText et, Activity activity) { this.tv = tv; this.et = et; this.activity = activity; map = new LinkedHashMap<String, String>(); map.putAll(SmileyMap.getInstance().getGeneral()); map.putAll(SmileyMap.getInstance().getHuahua()); } @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 sum = Utility.length(et.getText().toString()); int left = 140 - sum; if (left == 140) { tv.setText("140x"); } else { tv.setText(String.valueOf(left)+"x"); } if (left < 0) { tv.setTextColor(activity.getResources().getColor(R.color.red)); } else if (left >= 0 && left <= 140) { tv.setTextColor(activity.getResources().getColor(R.color.dimgrey)); } } @Override public void afterTextChanged(Editable s) { } }