본문 바로가기
안드로이드

안드로이드 - EditText에 값(Text) 변경 이벤트

by Dokon Jang 2015. 5. 13.
반응형

EditText의 값(Text) 변경 때 발생하는 이벤트처리 방법입니다.

 

1. TextWatcher 인터페이스

 - EditText의 값(Text)가 변경될 때 발생하는 이벤트를 처리하기 위해서 사용해야 할 인터페이스입니다.

 

2. Layout XML

 - Layout XML에 EditText를 추가합니다.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editText"/>

</LinearLayout>
 

 

3. Java

 - 아래의 코드와 같이 EditText에 Listener를 추가하여 이벤트를 처리하면 됩니다.

 - 입력이 완료(한글자 단위)되면 호출되는 afterTextChaned 메소드를 주로 사용하게 될 것입니다.

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        EditText editText = (EditText)this.findViewById(R.id.editText);
        editText.addTextChangedListener(new TextWatcher() {
            // 입력되는 텍스트에 변화가 있을 때
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Toast.makeText(MainActivity.this, "입력중", Toast.LENGTH_SHORT).show();
            }

            // 입력이 끝났을 때
            @Override
            public void afterTextChanged(Editable editable) {
                Toast.makeText(MainActivity.this, "입력완료", Toast.LENGTH_SHORT).show();
            }

            // 입력하기 전에
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                Toast.makeText(MainActivity.this, "입력전", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
 

 

반응형

댓글