Как решить FATAL EXCEPTION с Java.lang.NullPointerException? - PullRequest
3 голосов
/ 02 февраля 2011

Вот мой фрагмент кода, который выполняет операцию поиска на основе текста, введенного в поле ввода текста. Пожалуйста, посмотрите на него ...

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 во время работы показывает RunTime FATALException с некоторым NullPointerException .. Пожалуйста, предложите мне какой-нибудь выход отсюда .. Исключения следующие:

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)

1 Ответ

1 голос
/ 02 февраля 2011

Здесь, в строке № 65, которая является ничем иным, как If (условием), т.е.

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

получает Null Pointer Exception, поскольку значение списка lv_arr[i] возвращает нулевое значение, которое вызывает FATAL EXCEPTION времени выполнения с java.lang.NullPointerException.

Итак, когда я просматривал свой код, я обнаружил, что есть некоторые конфликты в размере списка, который находится в одном месте 44, а в другом месте - 53, поэтому, когда значение i равно 44, список lv_arr[i]=null и сравнение с нулевое значение порождает это исключение ...

Я успешно очистил его в своем коде благодаря всем вам ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...