- TextWatcher 인터페이스 사용
> ex) public class Exam2Activity extends Activity implements TextWatcher{ ...
- TextWatcher 인터페이스의 메소드
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after){
//CharSequence s : 현재 에디트텍스트에 입력된 문자열을 담고 있다.
//int start : s 에 저장된 문자열 내에 새로 추가될 문자열의 위치값을 담고있다.
//int count : s 에 담긴 문자열 가운데 새로 사용자가 입력할 문자열에 의해 변경될 문자열의 수가 담겨있다.
//int after : 새로 추가될 문자열의 수
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count){
//CharSequence s : 사용자가 새로 입력한 문자열을 포함한 에디트텍스트의 문자열이 들어있음
//int start : 새로 추가된 문자열의 시작 위치의 값
//int before : 새 문자열 대신 삭제된 기존 문자열의 수가 들어 있다
//int count : 새로 추가된 문자열의 수가 들어있다.
}
@Override
public void afterTextChanged(Editable s){}
참조페이지 : http://blog.naver.com/sukuns?Redirect=Log&logNo=70114459329
ⓐ TextWatcher Interface를 Implements한다. ( 인터페이스의 사례화 )
ⓑ 각각의 메소드중 원하는 값을 가지고 있는 메소드를 사용하여 구현을 해준다.
ⓒ addTextChangedListener(TextWatcher watcher)를 이용하여 TextWatcher를 원하는 EditBox에 첨가해준다.
--- Exam2Activity.java
package exam.exam2;
import android.app.Activity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Exam2Activity extends Activity implements TextWatcher{
/** Called when the activity is first created. */
private EditText et;
private TextView text;
private Button sendBtn;
private Button cancleBtn;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et = (EditText)findViewById(R.id.textbox);
text = (TextView)findViewById(R.id.length);
sendBtn = (Button)findViewById(R.id.send);
cancleBtn = (Button)findViewById(R.id.cancle);
sendBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
Toast.makeText(getApplicationContext(), et.getText() , 1000).show();
}
});
cancleBtn.setOnClickListener(new OnClickListener(){
public void onClick(View v){
finish();
}
});
et.addTextChangedListener(this);
}
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
}
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
if ( s.length() > 80 ){
Toast.makeText(getApplicationContext(), "80글자 이상 입력 불가능", 1000).show();
}else{
text.setText(s.length() + "/80");
}
}
}--- main.xml