【Android进阶学习】监听EditText的变化

来源:互联网 发布:百年孤独中的女性 知乎 编辑:程序博客网 时间:2024/06/11 19:57

之前博客上的有关EditText的文章,只是介绍EditText的一些最基本的用法,这次来深入学习一下EditText。

监听EditText的变化

使用EditText的addTextChangedListener(TextWatcher watcher)方法对EditText实现监听,TextWatcher是一个接口类,所以必须实现TextWatcher里的抽象方法:

 当EditText里面的内容有变化的时候,触发TextChangedListener事件,就会调用TextWatcher里面的抽象方法。

MainActivity.javapackage com.lingdududu.watcher;   import android.app.Activity;  import android.app.AlertDialog;  import android.content.DialogInterface;  import android.os.Bundle;  import android.text.Editable;  import android.text.TextWatcher;  import android.util.Log;  import android.widget.EditText;   public class MainActivity extends Activity {      private EditText text;      String str;      @Override     public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.main);                    text = (EditText)findViewById(R.id.text);          text.addTextChangedListener(textWatcher);      }            private TextWatcher textWatcher = new TextWatcher() {                    @Override            public void afterTextChanged(Editable s) {                 // TODO Auto-generated method stub                 Log.d("TAG","afterTextChanged--------------->");           }                     @Override         public void beforeTextChanged(CharSequence s, int start, int count,                  int after) {              // TODO Auto-generated method stub              Log.d("TAG","beforeTextChanged--------------->");          }            @Override            public void onTextChanged(CharSequence s, int start, int before,                     int count) {                 Log.d("TAG","onTextChanged--------------->");                str = text.getText().toString();              try {                  //if ((heighText.getText().toString())!=null)                   Integer.parseInt(str);                                } catch (Exception e) {                  // TODO: handle exception                  showDialog();              }                                        }                        };       private void showDialog(){          AlertDialog dialog;          AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);          builder.setTitle("消息").setIcon(android.R.drawable.stat_notify_error);          builder.setMessage("你输出的整型数字有误,请改正");          builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){              @Override             public void onClick(DialogInterface dialog, int which) {                  // TODO Auto-generated method stub                                }                             });          dialog = builder.create();          dialog.show();      }  } 

 main.xml

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content"   
  10.     android:text="请输入整型数字" 
  11.     /> 
  12. <EditText   
  13.     android:id="@+id/text" 
  14.     android:layout_width="fill_parent"   
  15.     android:layout_height="wrap_content"   
  16.     /> 
  17. </LinearLayout> 

  效果图:

当我们在输入框输入不是整型数字的时候,会立刻弹出输入框,提示你改正



不抄了,,,其实就是上面的那三个方法来实现对EditText的监听,,,



0 0