Java 创建时android中的文本观察程序

Java 创建时android中的文本观察程序,java,android,textwatcher,Java,Android,Textwatcher,我一直在尝试使用textwatcher。 我从onCreate调用了函数addTextChangedListener(this),但应用程序因为这个命令而崩溃。 请帮忙 private EditText txt1; private EditText txt2; private EditText txt3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstan

我一直在尝试使用textwatcher。 我从onCreate调用了函数addTextChangedListener(this),但应用程序因为这个命令而崩溃。 请帮忙

private EditText txt1; 
private EditText txt2;
private EditText txt3;


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



     txt1 = (EditText) findViewById(R.id.signup_username);
     txt2 = (EditText) findViewById(R.id.signup_password);
     txt3 = (EditText) findViewById(R.id.signup_email);
    txt1.addTextChangedListener(this);
    txt2.addTextChangedListener(this);
    txt3.addTextChangedListener(this);
    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

}
以及:

@Override
    public void beforeTextChanged(CharSequence s, int start, int count,
            int after) {
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub
}

@Override
public void afterTextChanged(Editable s) {
    View view = getCurrentFocus();
    int id = view.getId();
    if (id == R.id.signup_username) {
        String username = ((EditText) view).getText().toString();
        for (int i = 0; i < username.length(); i++) {
            if (username.charAt(i) < 'a' || username.charAt(i) > 'z') {
                Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show();
                break;
            }
            else {
                Toast.makeText(getApplicationContext(), "Murad", Toast.LENGTH_SHORT).show();
                break;
            }
        }
    }
    else {
        Toast.makeText(getApplicationContext(), "Oren", Toast.LENGTH_SHORT).show();
    }
}

}
@覆盖
更改前的公共无效(字符序列、整数开始、整数计数、,
整数后){
}
@凌驾
public void onTextChanged(字符序列、int start、int before、int count){
//TODO自动生成的方法存根
}
@凌驾
公共无效后文本已更改(可编辑){
视图=getCurrentFocus();
int id=view.getId();
if(id==R.id.signup\u用户名){
字符串用户名=((编辑文本)视图).getText().toString();
对于(int i=0;i'z'){
Toast.makeText(getApplicationContext(),“Error”,Toast.LENGTH_SHORT.show();
打破
}
否则{
Toast.makeText(getApplicationContext(),“Murad”,Toast.LENGTH_SHORT).show();
打破
}
}
}
否则{
Toast.makeText(getApplicationContext(),“Oren”,Toast.LENGTH_SHORT).show();
}
}
}
日志:

04-03 11:37:22.684:D/skia(23439):新的本地语言环境
04-03 11:37:22.854:D/libEGL(23439):已加载/供应商/lib/egl/libEGL_-adreno.so
04-03 11:37:22.854:D/libEGL(23439):已加载/供应商/lib/egl/libGLESv1_CM_adreno.so
04-03 11:37:22.864:D/libEGL(23439):已加载/供应商/lib/egl/libGLESv2_-adreno.so
04-03 11:37:22.864:I/Adreno EGL(23439)::EGL 1.4高通公司构建:(CL4169980)
04-03 11:37:22.864:I/Adreno EGL(23439):OpenGL ES着色器编译器版本:17.01.10.SPL
04-03 11:37:22.864:I/Adreno EGL(23439):建造日期:2013年9月26日星期四
04-03 11:37:22.864:I/Adreno EGL(23439):本地分支机构:
04-03 11:37:22.864:I/Adreno EGL(23439):远程分支:
04-03 11:37:22.864:I/Adreno EGL(23439):局部贴片:
I/Adreno EGL(23439):重建分支:
04-03 11:37:22.914:D/OpenGLRenderer(23439):启用调试模式0
04-03 11:37:39.971:D/AndroidRuntime(23439):关闭虚拟机
04-03 11:37:39.971:W/dalvikvm(23439):threadid=1:线程以未捕获异常退出(组=0x41b2b898)
04-03 11:37:39.981:E/AndroidRuntime(23439):致命异常:main
04-03 11:37:39.981:E/AndroidRuntime(23439):java.lang.RuntimeException:无法启动活动组件信息{com.example.poca2/com.example.poca2.RegisterActivity}:java.lang.NullPointerException
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
04-03 11:37:39.981:E/AndroidRuntime(23439):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.ActivityThread.access$700(ActivityThread.java:159)
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.os.Handler.dispatchMessage(Handler.java:99)上
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.os.Looper.loop(Looper.java:137)
04-03 11:37:39.981:E/AndroidRuntime(23439):位于android.app.ActivityThread.main(ActivityThread.java:5419)
04-03 11:37:39.981:E/AndroidRuntime(23439):位于java.lang.reflect.Method.Invokenactive(本机方法)
04-03 11:37:39.981:E/AndroidRuntime(23439):位于java.lang.reflect.Method.invoke(Method.java:525)
04-03 11:37:39.981:E/AndroidRuntime(23439):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-03 11:37:39.981:E/AndroidRuntime(23439):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-03 11:37:39.981:E/AndroidRuntime(23439):在dalvik.system.NativeStart.main(本机方法)
04-03 11:37:39.981:E/AndroidRuntime(23439):由以下原因引起:java.lang.NullPointerException
04-03 11:37:39.981:E/AndroidRuntime(23439):位于com.example.poca2.RegisterActivity.onCreate(RegisterActivity.java:33)
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.Activity.performCreate(Activity.java:5372)上
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
04-03 11:37:39.981:E/AndroidRuntime(23439):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
04-03 11:37:39.981:E/AndroidRuntime(23439):。。。还有11个
04-03 11:37:44.545:D/skia(23761):新的本地语言环境
04-03 11:37:44.776:D/libEGL(23761):已加载/vendor/lib/egl/libEGL_adreno.so
04-03 11:37:44.786:D/libEGL(23761):已加载/vendor/lib/egl/libGLESv1_CM_adreno.so
04-03 11:37:44.786:D/libEGL(23761):已加载/vendor/lib/egl/libGLESv2_adreno.so
04-03 11:37:44.786:I/Adreno EGL(23761)::EGL 1.4高通公司构建:(CL4169980)
04-03 11:37:44.786:I/Adreno EGL(23761):OpenGL ES着色器编译器版本:17.01.10.SPL
04-03 11:37:44.786:I/Adreno EGL(23761):建造日期:2013年9月26日星期四
04-03 11:37:44.786:I/Adreno EGL(23761):本地分行:
04-03 11:37:44.786:I/Adreno EGL(23761):远程分支:
04-03 11:37:44.786:I/Adreno EGL(23761):局部贴片:
04-03 11:37:44.786:I/Adreno EGL(23761):重建分支:
04-03 11:37:44.836:D/OpenGLRenderer(23761):启用调试模式0
04-03 11:37:48.069:D/AndroidRuntime(23761):关闭虚拟机
04-03 11:37:48.069:W/dalvikvm(23761):threadid=1:线程退出时出现未捕获异常(组=0x41b2b898)
04-03 11:37:48.069:E/AndroidRuntime(23761):致命异常:主
04-03 11:37:48.069:E/AndroidRuntime(23761):java.lang.RuntimeException:无法启动活动组件信息{com.example.poca2/com.example.poca2.RegisterActivity}:java.lang.NullPointerException
04-03 11:37:48.069:E/AndroidRuntime(23761):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
04-03 11:37:48.069:E/AndroidRuntime(23761):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
04-03 11:37
04-03 11:37:22.684: D/skia(23439): new locale en-Latn-GB
04-03 11:37:22.854: D/libEGL(23439): loaded /vendor/lib/egl/libEGL_adreno.so
04-03 11:37:22.854: D/libEGL(23439): loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
04-03 11:37:22.864: D/libEGL(23439): loaded /vendor/lib/egl/libGLESv2_adreno.so
04-03 11:37:22.864: I/Adreno-EGL(23439): <qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build:  (CL4169980)
04-03 11:37:22.864: I/Adreno-EGL(23439): OpenGL ES Shader Compiler Version: 17.01.10.SPL
04-03 11:37:22.864: I/Adreno-EGL(23439): Build Date: 09/26/13 Thu
04-03 11:37:22.864: I/Adreno-EGL(23439): Local Branch: 
04-03 11:37:22.864: I/Adreno-EGL(23439): Remote Branch: 
04-03 11:37:22.864: I/Adreno-EGL(23439): Local Patches: 
04-03 11:37:22.864: I/Adreno-EGL(23439): Reconstruct Branch: 
04-03 11:37:22.914: D/OpenGLRenderer(23439): Enabling debug mode 0
04-03 11:37:39.971: D/AndroidRuntime(23439): Shutting down VM
04-03 11:37:39.971: W/dalvikvm(23439): threadid=1: thread exiting with uncaught exception (group=0x41b2b898)
04-03 11:37:39.981: E/AndroidRuntime(23439): FATAL EXCEPTION: main
04-03 11:37:39.981: E/AndroidRuntime(23439): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.poca2/com.example.poca2.RegisterActivity}: java.lang.NullPointerException
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread.access$700(ActivityThread.java:159)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.os.Looper.loop(Looper.java:137)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread.main(ActivityThread.java:5419)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at java.lang.reflect.Method.invokeNative(Native Method)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at java.lang.reflect.Method.invoke(Method.java:525)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at dalvik.system.NativeStart.main(Native Method)
04-03 11:37:39.981: E/AndroidRuntime(23439): Caused by: java.lang.NullPointerException
04-03 11:37:39.981: E/AndroidRuntime(23439):    at com.example.poca2.RegisterActivity.onCreate(RegisterActivity.java:33)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.Activity.performCreate(Activity.java:5372)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
04-03 11:37:39.981: E/AndroidRuntime(23439):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
04-03 11:37:39.981: E/AndroidRuntime(23439):    ... 11 more
04-03 11:37:44.545: D/skia(23761): new locale en-Latn-GB
04-03 11:37:44.776: D/libEGL(23761): loaded /vendor/lib/egl/libEGL_adreno.so
04-03 11:37:44.786: D/libEGL(23761): loaded /vendor/lib/egl/libGLESv1_CM_adreno.so
04-03 11:37:44.786: D/libEGL(23761): loaded /vendor/lib/egl/libGLESv2_adreno.so
04-03 11:37:44.786: I/Adreno-EGL(23761): <qeglDrvAPI_eglInitialize:316>: EGL 1.4 QUALCOMM build:  (CL4169980)
04-03 11:37:44.786: I/Adreno-EGL(23761): OpenGL ES Shader Compiler Version: 17.01.10.SPL
04-03 11:37:44.786: I/Adreno-EGL(23761): Build Date: 09/26/13 Thu
04-03 11:37:44.786: I/Adreno-EGL(23761): Local Branch: 
04-03 11:37:44.786: I/Adreno-EGL(23761): Remote Branch: 
04-03 11:37:44.786: I/Adreno-EGL(23761): Local Patches: 
04-03 11:37:44.786: I/Adreno-EGL(23761): Reconstruct Branch: 
04-03 11:37:44.836: D/OpenGLRenderer(23761): Enabling debug mode 0
04-03 11:37:48.069: D/AndroidRuntime(23761): Shutting down VM
04-03 11:37:48.069: W/dalvikvm(23761): threadid=1: thread exiting with uncaught exception (group=0x41b2b898)
04-03 11:37:48.069: E/AndroidRuntime(23761): FATAL EXCEPTION: main
04-03 11:37:48.069: E/AndroidRuntime(23761): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.poca2/com.example.poca2.RegisterActivity}: java.lang.NullPointerException
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread.access$700(ActivityThread.java:159)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.os.Handler.dispatchMessage(Handler.java:99)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.os.Looper.loop(Looper.java:137)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread.main(ActivityThread.java:5419)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at java.lang.reflect.Method.invokeNative(Native Method)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at java.lang.reflect.Method.invoke(Method.java:525)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at dalvik.system.NativeStart.main(Native Method)
04-03 11:37:48.069: E/AndroidRuntime(23761): Caused by: java.lang.NullPointerException
04-03 11:37:48.069: E/AndroidRuntime(23761):    at com.example.poca2.RegisterActivity.onCreate(RegisterActivity.java:33)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.Activity.performCreate(Activity.java:5372)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
04-03 11:37:48.069: E/AndroidRuntime(23761):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
04-03 11:37:48.069: E/AndroidRuntime(23761):    ... 11 more
04-03 11:37:54.265: I/Process(23761): Sending signal. PID: 23761 SIG: 9
private EditText txt1; 
private EditText txt2;
private EditText txt3;


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



    txt1 = (EditText) findViewById(R.id.signup_username);
    txt2 = (EditText) findViewById(R.id.signup_password);
    txt3 = (EditText) findViewById(R.id.signup_email);
    txt1.addTextChangedListener(new CustomTextWatcher(txt1, getApplicationContext()));
    txt2.addTextChangedListener(new CustomTextWatcher(txt2, getApplicationContext()));
    txt3.addTextChangedListener(new CustomTextWatcher(txt3, getApplicationContext()));
    if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment()).commit();
    }

}
 class CustomTextWatcher implements TextWatcher {
EditText m;
Context c;
public CustomTextWatcher (EditText e, Context context) {
    m = e;
    c = context;
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

}

@Override
public void afterTextChanged(Editable s) {
    int id = m.getId();
    if (id == R.id.signup_username) {
        String username = ((EditText) m).getText().toString();
        for (int i = 0; i < username.length(); i++) {
            if (username.charAt(i) < 'a' || username.charAt(i) > 'z') {
                Toast.makeText(c, "Error", Toast.LENGTH_SHORT).show();
                break;
            }
            else {
                Toast.makeText(c, "Murad", Toast.LENGTH_SHORT).show();
                break;
            }
        }
    }
    else {
        Toast.makeText(c, "Oren", Toast.LENGTH_SHORT).show();
    }
}