2011-02-02 51 views
3

这里是我的代码片段,其执行基于在的EditText框输入的文本搜索操作,请在其上具有看看...如何用Java.lang.NullPointerException解决FATAL EXCEPTION?

ed.addTextChangedListener(new TextWatcher() { 

     public void afterTextChanged(Editable s) { 
     } 

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

     public void onTextChanged(CharSequence s, int start, int before, 
     int count) { 
     b4.setVisibility(b4.VISIBLE); 
     textlength=ed.getText().length(); 
     arr_sort.clear(); 
     for(int i=0;i<lv_arr.length;i++) 
     { 
      if(textlength<=lv_arr[i].length()) 
      { 
      boolean b=ed.getText().toString().equalsIgnoreCase((String) lv_arr[i].subSequence(0, textlength)); 
      if(b) 
       { 
        arr_sort.add(lv_arr[i]); 
        //Log.i("In If:",arr_sort.toString()); 
       } 
      } 
     } 
     lv1.setAdapter(new ArrayAdapter<String>(BasicsActivity.this,R.layout.rowlayout2 ,R.id.label, arr_sort)); 
     //Log.i("Step6-","ok"); 
     } 
     }); 

现在的问题是,当我写上的EditText查看什么而运行它显示了一些NullPointerException..Please运行时FATALException建议我一些某种方式离开这里.. 的Excpetions如下..

02-02 13:29:48.577: ERROR/AndroidRuntime(541): FATAL EXCEPTION: main 
02-02 13:29:48.577: ERROR/AndroidRuntime(541): java.lang.NullPointerException 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.desitranslation.BasicsActivity$1.onTextChanged(BasicsActivity.java:65) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.widget.TextView.sendOnTextChanged(TextView.java:6295) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.widget.TextView.handleTextChanged(TextView.java:6336) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:6485) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:889) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:352) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:269) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:432) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:409) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:28) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.method.QwertyKeyListener.onKeyDown(QwertyKeyListener.java:195) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.text.method.TextKeyListener.onKeyDown(TextKeyListener.java:132) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.widget.TextView.doKeyDown(TextView.java:4433) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.widget.TextView.onKeyDown(TextView.java:4267) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.KeyEvent.dispatch(KeyEvent.java:1256) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.View.dispatchKeyEvent(View.java:3855) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewGroup.dispatchKeyEvent(ViewGroup.java:789) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchKeyEvent(PhoneWindow.java:1687) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.internal.policy.impl.PhoneWindow.superDispatchKeyEvent(PhoneWindow.java:1120) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.app.Activity.dispatchKeyEvent(Activity.java:2073) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:1663) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewRoot.deliverKeyEventToViewHierarchy(ViewRoot.java:2560) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewRoot.handleFinishedEvent(ViewRoot.java:2535) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.view.ViewRoot.handleMessage(ViewRoot.java:1867) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.os.Handler.dispatchMessage(Handler.java:99) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.os.Looper.loop(Looper.java:123) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at android.app.ActivityThread.main(ActivityThread.java:3647) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at java.lang.reflect.Method.invoke(Method.java:507) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-02 13:29:48.577: ERROR/AndroidRuntime(541):  at dalvik.system.NativeStart.main(Native Method) 
+3

,如果你告诉我们这行是65行(就是这样产生的行这将有助于空指针异常)。你在onTextChanged()中使用了很多外部变量。可能其中的一个,或者其中一个数组槽是'null'。 – 2011-02-02 08:27:12

回答

1

在这里,在号线65,这不过是一个如果(条件)即;

if(textlength<=lv_arr[i].length()) 
{..} 

获取Null Pointer Exception由于的列表lv_arr[i]的值被返回一个空值导致具有java.lang.NullPointerException运行时致命的异常。

因此,当我检查我的代码时,我发现列表大小存在一些冲突,在一个地方44和另一个地方是53因此当我的值是44的列表lv_arr[i]=null和比较null值会产生这种异常...

我成功清除它在我的代码感谢所有的你..

相关问题