I am using robotium to test my project. I am using custom listviews in my project. There will be minimum 3 listviews in a page which resides in a view pager. My custom listview name is MyDragNDropList. In this listviews there will be 1 button in each row. This button is to add that item to my personalized list. Once the item is added the button will be disabled. Initially i was using
solo.clickOnText("button text"); or
solo.clickOnButton("button text"); or
solo.clickOnButton(buttonindex);
but this is not working now. So i have tried another method. I am setting the listview to a listview object created for unit test project. Then
solo.scrollListToLine(2, position);
solo.waitForDialogToClose(1000);
ListView myList=UnitTestHelperClass.getInstance().listView;
View listElement = myList.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
solo.clickOnView(btn);
If the first visible item's button is enabled then this code will work. But if the lst is scrolled then i am getting NullPointerException in below line.
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
Why is it so? How can i resolve this issue? Please help me.
EDIT I have tried with another method. Instead of setting listview from source code i am getting this in the test project itself.
solo.scrollListToLine(2, position);
ListView list=solo.getCurrentViews(ListView.class).get(2);
View listElement=list.getChildAt(position);
View btn=listElement.findViewById(com.safeway.client.android.R.id.add_offer_button);
solo.clickOnView(btn);
But here also i am getting the same issue.First two items button click is working fine.but for third item i am getting null pointer exception.
I got answer:)