Android Espresso:无法找到具有唯一android:id的CheckBoxPreference

时间:2016-10-22 09:21:46

标签: android checkbox android-espresso checkboxpreference

我正在尝试在PreferenceScreen上测试一个复选框。

PreferenceScreen包含两个CheckBoxPreferences,每个都有唯一的android:id。

    <CheckBoxPreference
        android:id="@+id/first_checkbox"
        android:key="first_checkbox"
        android:title="First checkbox" />

    <CheckBoxPreference
        android:id="@+id/second_checkbox"
        android:key="second_checkbox"
        android:title="Second checkbox" />

以下是R.java文件的id值:

public static final class id {
    public static final int first_checkbox=0x7f0a0000;
    public static final int second_checkbox=0x7f0a0001;
}

在我的测试中:

    ViewInteraction cbxFirst = onView(withId(R.id.first_checkbox));

我明白了:

    NoMatchingViewException: No views in  hierarchy found matching: with id:  
    com.test.fragmentpreference:id/first_checkbox

当我尝试使用&#39; android.R.id.checkbox&#39;而不是&#39; R.id.first_checkbox&#39;:

    ViewInteraction cbxFirst = onView(withId(android.R.id.checkbox));

我收到:

    AmbiguousViewMatcherException: 'with id: android:id/checkbox' matches multiple views in the hierarchy.

我的问题是:如何使用&#39; first_checkbox&#39;来测试第一个CheckBoxPreference? id?

1 个答案:

答案 0 :(得分:0)

根据https://developer.android.com/reference/android/preference/CheckBoxPreference.html

<强>&#34;机器人:ID&#34;不是CheckBoxPreference允许的xml属性。

在这种情况下,我错误地添加了&#34; android:id&#34;到preference.xml中的CheckBoxPreference声明。