2012-04-27 3 views
10

Я новичок в Robotium. Я создал диалоговое окно предупреждения с помощью диалогового построителя и вызвал его с помощью команды show. Я смог запустить кнопку «ОК» по умолчанию с помощью Robotium, и я не могу сделать то же самое для кнопки «Отмена». Поскольку диалоговое окно не связано с идентификатором, я не уверен, как получить идентификатор кнопок. Вот мой код для диалогового окнаКак выбрать, какую кнопку нажать на Robotium для диалогового окна предупреждения?

alertDialogBuilder 
.setMessage("Please enter only numbers without any spaces") 
.setCancelable(true) 
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 
dialog.cancel(); 
} 
}) 
.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dialog, int id) { 
dialog.cancel(); 
} 
}); 

Код я использовал для запуска кнопки «ОК» в классе Test является

solo.getCurrentActivity().runOnUiThread(new Runnable() { 
public void run() { 
solo.getCurrentActivity().getCurrentFocus().requestFocus(); 
} 
}); 
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER); 

Как сделать то же самое для кнопки «Отмена»? Заранее спасибо.

ответ

9

Просто используйте solo.clickOnButton («Отмена»);

+0

ya. если бы оно было исправлено. Спасибо Renas –

22

На самом деле, я предлагаю вам сделать solo.clickOnView(solo.getView(buttonId)), где кнопка «Позитивный» является android.R.id.button1, кнопка «Negative» является android.R.id.button2 и «Нейтральная» является android.R.id.button3.

+3

Это оказалось гораздо более надежным для меня, чем принятый ответ. Благодарю. – Eoin

+2

что делать, если у нас есть пользовательский диалог? – DJhon

 Смежные вопросы

  • Нет связанных вопросов^_^