Problems with mTextEditorWatcher on Android

Sorry for the previous "Why is Android such a mess?" question. I am just stunned by this problem. I am trying to make a char. counter in EditText:

final TextWatcher mTextEditorWatcher = new TextWatcher() {
        EditText edit_text = (EditText) findViewById(R.id.editText1);
        TextView text_view = (EditText) findViewById(R.id.textView1);

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

    };

    public void onTextChanged(CharSequence s, int start, int before, int count) {
       //This sets a textview to the current length
       text_view.setText(String.valueOf(s.length()));
    };

    //public void afterTextChanged1(Editable s) {
    //};

    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    };
};

And then he falls. This is why I really asked about EditText / TextView fixes earlier. I don’t understand what is wrong with this code?

LogCat Log:

04-23 00:57:46.029: E/AndroidRuntime(347): Uncaught handler: thread main exiting due to uncaught exception
04-23 00:57:46.109: E/AndroidRuntime(347): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.dtype.writer/com.dtype.writer.DTypeActivity}: java.lang.NullPointerException
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread.access$2200(ActivityThread.java:119)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.os.Looper.loop(Looper.java:123)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread.main(ActivityThread.java:4363)
04-23 00:57:46.109: E/AndroidRuntime(347):  at java.lang.reflect.Method.invokeNative(Native Method)
04-23 00:57:46.109: E/AndroidRuntime(347):  at java.lang.reflect.Method.invoke(Method.java:521)
04-23 00:57:46.109: E/AndroidRuntime(347):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
04-23 00:57:46.109: E/AndroidRuntime(347):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
04-23 00:57:46.109: E/AndroidRuntime(347):  at dalvik.system.NativeStart.main(Native Method)
04-23 00:57:46.109: E/AndroidRuntime(347): Caused by: java.lang.NullPointerException
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.Activity.findViewById(Activity.java:1612)
04-23 00:57:46.109: E/AndroidRuntime(347):  at com.dtype.writer.DTypeActivity$1.<init>(DTypeActivity.java:29)
04-23 00:57:46.109: E/AndroidRuntime(347):  at com.dtype.writer.DTypeActivity.<init>(DTypeActivity.java:28)
04-23 00:57:46.109: E/AndroidRuntime(347):  at java.lang.Class.newInstanceImpl(Native Method)
04-23 00:57:46.109: E/AndroidRuntime(347):  at java.lang.Class.newInstance(Class.java:1479)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-23 00:57:46.109: E/AndroidRuntime(347):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409)
04-23 00:57:46.109: E/AndroidRuntime(347):  ... 11 more
04-23 00:57:46.128: E/dalvikvm(347): Unable to open stack trace file '/data/anr/traces.txt': Permission denied

This solution was borrowed from here , and Cameron Ketchum suggests using it mEditText.addTextChangedListener(mTextEditorWatcher);to set TextWatcher to EditText. Maybe this is the core of my problem?

Update 4/24/2012: So far no working solution has been found for this.

+3
source share
2 answers

I think this is because you put:

mTextView = (EditText) findViewById (R.id.textView1);

:

mTextView = (TextView) findViewById (R.id.textView1);

+4

.

private TextWatcher mTextEditorWatcher;
private EditText mEditText; 
private TextView mTextView;

public void onCreate() {
    mEditText = (EditText) findViewById(R.id.editText1);
    mTextView = (EditText) findViewById(R.id.textView1);
    mTextEditorWatcher = new TextWatcher() {

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

    };

    public void onTextChanged(CharSequence s, int start, int before, int count) {
       //This sets a textview to the current length
       mTextView.setText(String.valueOf(s.length()));
    }

    //public void afterTextChanged1(Editable s) {
    //}

    public void afterTextChanged(Editable arg0) {
        // TODO Auto-generated method stub

    }
  };
  mEditText.addTextChangedListener(mTextEditorWatcher);
}
+2

All Articles