Aexyn
Aexyn

Reputation: 1222

NullPointerException onListItemClick upon Scrolling

I am trying to get the value of a text from the List View. It is working fine for top rows, But when I scroll down , It returns Null value.I tried Hard to Solve, But failed.

LOGCAT

12-12 06:28:31.960: E/AndroidRuntime(1690): FATAL EXCEPTION: main
12-12 06:28:31.960: E/AndroidRuntime(1690): java.lang.NullPointerException
12-12 06:28:31.960: E/AndroidRuntime(1690):     at com.example.graphjsoup.ShowOrderList.onListItemClick(ShowOrderList.java:42)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.app.ListActivity$2.onItemClick(ListActivity.java:319)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.widget.AdapterView.performItemClick(AdapterView.java:298)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.widget.AbsListView.performItemClick(AbsListView.java:1100)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:2788)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.widget.AbsListView$1.run(AbsListView.java:3463)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.os.Handler.handleCallback(Handler.java:730)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.os.Handler.dispatchMessage(Handler.java:92)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.os.Looper.loop(Looper.java:137)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at android.app.ActivityThread.main(ActivityThread.java:5103)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at java.lang.reflect.Method.invokeNative(Native Method)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at java.lang.reflect.Method.invoke(Method.java:525)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-12 06:28:31.960: E/AndroidRuntime(1690):     at dalvik.system.NativeStart.main(Native Method)

In onListItemClick, Even on Scrolling Down, All The "position" value it returns is correct. But gives error on getChildAt on Lower Values

Code

@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);
        View mView = l.getChildAt(position);

        Log.d("xxListView", l.toString() + "");
        Log.d("xxPosm", mView.toString() + "");
        mOrderId = (TextView) mView.findViewById(R.id.order_id);
        Id = mOrderId.getText().toString();
        Log.d("xxID", Id + "+1");
        new DialogBox().execute();

    }

I tried to covert the value of mView to String, and got something like below. I keep clicking on every row and it returns some string(which I don't know what is says). On every click ,highlighted value is increased. As soon as it is going to touch 1000, It crashed. I don't know weather it will be helpful or not. If someone can Explain it too, It would be Great. enter image description here

Upvotes: 0

Views: 184

Answers (2)

Abhishek Shukla
Abhishek Shukla

Reputation: 1242

protected void onListItemClick(ListView l, View v, int position, long id)

Why aren't you using the View v passed in this event. It's the same child view

Upvotes: 1

GrIsHu
GrIsHu

Reputation: 23638

Change your TextView as below:

   mOrderId = (TextView) v.findViewById(R.id.order_id);

Upvotes: 1

Related Questions