0

PreferenceScreen でチェックボックスをテストしようとしています。

PreferenceScreen には 2 つの 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

「R.id.first_checkbox」の代わりに「android.R.id.checkbox」で検索しようとすると:

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

私は受け取ります:

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

私の質問は: 'first_checkbox' id を使用して最初の CheckBoxPreference をテストするにはどうすればよいですか?

4

1 に答える 1

0

https://developer.android.com/reference/android/preference/CheckBoxPreference.htmlによると:

「android:id」は、CheckBoxPreference の許容される xml 属性ではありません。

この場合、preference.xml の CheckBoxPreference 宣言に誤って「android:id」を追加してしまいました。

于 2016-10-22T22:02:07.513 に答える