Я использую robotium для проверки моего проекта. Я использую пользовательские списки в моем проекте. На странице, которая находится в представлении пейджера, будет минимум 3 списка. Мое пользовательское имя списка: MyDragNDropList. В этом списке будет 1 кнопка в каждой строке. Эта кнопка предназначена для добавления этого элемента в мой персонализированный список. После добавления элемента кнопка будет отключена. Первоначально я использовалполучить представление в пользовательском listview
solo.clickOnText("button text"); or
solo.clickOnButton("button text"); or
solo.clickOnButton(buttonindex);
, но это не работает сейчас. Поэтому я попробовал другой метод. Я устанавливаю listview для объекта listview, созданного для проекта модульного тестирования. Затем
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);
Если кнопка первого видимого элемента включена, этот код будет работать. Но если lst прокручивается, я получаю NullPointerException в строке ниже.
View btn=listElement.findViewById(com.safeway.client.android.R.id.list_button);
Почему это так? Как я могу решить эту проблему? Пожалуйста, помогите мне.
EDIT Я пробовал по другому методу. Вместо установки listview из исходного кода я получаю это в самом тестовом проекте.
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);
А вот и я получаю ту же кнопку issue.First два элемента нажмите работает fine.but для третьего пункта я получаю исключения нулевого указателя.
Никто не имеет представление об этом ??? –
Возможно ли, что код выполняется до того, как список заполнит элементы? Когда вы просматриваете представление, нужно перерисовать. Я уверен, что у robotium есть что-то для проверки готовности или загрузки списка (это просто выстрел, но когда я был использован robotium soemthing вроде этого уже был там). Вы также можете щелкнуть элемент списка, вызвав метод для этого (предварительно проверенное количество элементов, конечно!) – deadfish
Мне нужно получить представление элемента списка только после прокрутки списка к этому элементу. Возможно ли это? –