unfortunately,***has stopped
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/text01"
android:textSize="20sp"
/>
<EditText
android:id="@+id/editText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_text01_hint"
android:digits="@string/charsordigits"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/text02"
android:textSize="20sp"
/>
<EditText
android:id="@+id/editText02"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/edit_text02_hint"
/>
</LinearLayout>
package com.demo.myedittext;
import android.os.Bundle;
import android.app.Activity;
import android.text.Editable;
import android.text.InputFilter;
import android.text.TextWatcher;
import android.view.Menu;
import android.widget.EditText;
public class myEditText extends Activity {
private EditText editText01;
private EditText editText02;
private MyTextWacher myTextWacher;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
editText01= (EditText) findViewById(R.id.editText01);
editText02= (EditText) findViewById(R.id.editText02);
InputFilter[] ifs = {new InputFilter.LengthFilter(10)};
editText01.setFilters(ifs);
//设置显示内容
editText01.setText("");
myTextWacher = new MyTextWacher(editText02, "");
editText02.addTextChangedListener(myTextWacher);
editText01.addTextChangedListener(new TextWatcher(){
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
editText02.removeTextChangedListener(myTextWacher);
myTextWacher = new MyTextWacher(editText02, s.toString());
editText02.addTextChangedListener(myTextWacher);
}
});
}
class MyTextWacher implements TextWatcher{
private String tmp = "";
private String digits = "abcdef";
private EditText editText;
public MyTextWacher(final EditText editText, final String digits){
this.editText =editText;
this.digits =digits;
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String str = s.toString();
if(str.equals(tmp)){
return;
}
StringBuffer sb =new StringBuffer();
for(int i=0;i< str.length();i++){
if(digits.indexOf(str.charAt(i))>=0){
sb.append(str.charAt(i));
}
}
tmp = sb.toString();
editText.setText(tmp);
editText.invalidate();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
tmp = s.toString();
}
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}