我的Android应用程序设置屏幕是使用首选项标题设计的,如下所示。
<header
android:id="@+id/preference_header_account"
android:fragment="testPackage.TestPreferenceFragment"
android:key="pref_key_username"
android:summary="dynamic"
android:title="@string/username_title" />
现在在我的测试中,我能够获得此标题的视图,而且我正在点击该视图以获取TestPreferenceFragment屏幕,如下所示。
ArrayList<Header> headers = new ArrayList<Header>();
ListAdapter listAdapter = getActivity().getListAdapter();
for (int i = 0; i < listAdapter.getCount(); i++) {
headers.add((Header) listAdapter.getItem(i));
}
for (int i = 0; i < listAdapter.getCount(); i++) {
if (headers.get(i).id == R.Id.userName) {
position = i;
}
}
View userName = getActivity().getListView().getChildAt(position);
TouchUtils.tapView(this, userName);
现在我想在打开的屏幕中测试首选项/视图,这是一个首选片段。以下是我的xml,它正在TestPreferenceFragment中加载。
<testpackage.CustomPreference1
android:inputType="textCapWords"
android:key="pref_key_username"
android:maxLines="1"
android:persistent="false"
android:selectAllOnFocus="true"
android:singleLine="true"
android:title="@string/test_username" />
我可以想到测试偏好片段,如果我在我的测试用例中得到偏好片段,我可以使用findPreference(key)从中获得偏好。但我无法得到它。
任何人都可以帮助我吗?在此先感谢:)
答案 0 :(得分:0)
我已经尝试过,最后得到一个解决方案,只需重写设置活动的onAttachFragment()方法,将偏好片段放入我的测试类。
fragmentsList = new ArrayList<Fragment>();
@Override
public void onAttachFragment(Fragment fragment)
{
fragmentsList.add(fragment);
}
public ArrayList<Fragment> getFragmentsAttachedToActivity()
{
return fragmentsList;
}
现在使用getFragmentsAttachedToActivity(),您可以访问设置活动的所有片段(如果已添加到设置活动中)。