Saturday, January 25, 2014

Implement TextWatcher to EditText

This example implement TextWatcher, attach to EditText with addTextChangedListener(). Its methods will be called when the text is changed.

Implement TextWatcher to EditText
Implement TextWatcher to EditText

package com.example.androidedittext;

import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView promptAfter, promptBefore, promptOn;

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

promptAfter = (TextView)findViewById(R.id.promptAfter);
promptBefore = (TextView)findViewById(R.id.promptBefore);
promptOn = (TextView)findViewById(R.id.promptOn);

EditText input = (EditText)findViewById(R.id.input);
input.addTextChangedListener(textWatcher);
}

TextWatcher textWatcher = new TextWatcher(){

@Override
public void afterTextChanged(Editable s) {
promptAfter.setText(s.toString());
}

@Override
public void beforeTextChanged(CharSequence s,
int start, int count, int after) {
promptBefore.setText(s + "\n" +
start + " / " + count + " / " + after);
}

@Override
public void onTextChanged(CharSequence s,
int start, int before, int count) {
promptOn.setText(s + "\n"
+ start + " / " + before + " / " + count);
}

};

}

<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="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="android-coding.blogspot.com" />

<EditText
android:id="@+id/input"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="28sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="italic"
android:text="afterTextChanged(Editable s)" />
<TextView
android:id="@+id/promptAfter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="italic"
android:text="beforeTextChanged(CharSequence s, int start, int count, int after)" />
<TextView
android:id="@+id/promptBefore"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="italic"
android:text="onTextChanged(CharSequence s, int start, int before, int count)" />
<TextView
android:id="@+id/promptOn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="bold" />

</LinearLayout>

No comments:

Post a Comment