Twitterに投稿するときにEditText内の文字数をカウントしたいときの備忘録
private EditText et; private TextView tv; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.twitter); tv = (TextView) findViewById(R.id.TwitterTextCount); et = (EditText) findViewById(R.id.TwitterText); et.addTextChangedListener(new TextWatcher(){ @Override public void onTextChanged(CharSequence s, int start, int before, int count){ if(tv != null){ final int textColor; int length = 140- s.length(); if(length < 0){ textColor = Color.RED; }else{ textColor = Color.GRAY; } tv.setTextColor(textColor); tv.setText(String.valueOf(length)); } } @Override public void afterTextChanged(Editable s) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } }); }
EditTextクラスのaddTextChangedListenerを使う
今回は140文字を超えるとTextViewで表示している数字を赤くした