Reputation: 1222
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.
Upvotes: 0
Views: 184
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
Reputation: 23638
Change your TextView
as below:
mOrderId = (TextView) v.findViewById(R.id.order_id);
Upvotes: 1