我正在显示如下的AlertDialog:
private void showAlertDialog(String message){
new AlertDialog.Builder(MainActivity.this)
.setMessage(message)
.setPositiveButton(android.R.string.ok, null)
.show();
}
我想运行自动化测试,该测试在android:contentDescription
上中继以读取值。
是否可以从内置警报对话框的正负按钮添加/获取此参数?
答案 0 :(得分:1)
在alert_dialog.xml
上检查文件ANDROID_HOME/platforms/android-28/data/res/layout
,我可以看到常规/标准中的按钮,AlertDialog
的定义如下:
<Button android:id="@+id/button1"
android:layout_width="0dip"
android:layout_gravity="start"
android:layout_weight="1"
... />
<Button android:id="@+id/button3"
android:layout_width="0dip"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
... />
<Button android:id="@+id/button2"
android:layout_width="0dip"
android:layout_gravity="end"
android:layout_weight="1"
... />
然后,您可以搜索这些视图并按以下方式获取其内容:
AlertDialog alert = builder.create();
alert.findViewById(android.R.id.button1);
编辑
@ADM在评论中提到,您可以轻松运行以下代码:
您可以通过
进行设置alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setContentDescription("positive");
更简单,更简单。而且您不必依赖View ID。.非常好(也是最好的)解决方案!
答案 1 :(得分:1)
我已经在评论中回答过,“只是为了用可接受的答案来结束问题...
您可以使用#alertDialog.getButton()
获得Dialog的操作按钮...在这种情况下,您可以使用:-
alertDialog.getButton(DialogInterface.BUTTON_POSITIVE).setContentDescription("positive");
alertDialog.getButton(DialogInterface.BUTTON_NEGATIVE).setContentDescription("negative");