我正在创建我的第一个 android 应用程序,其中我有一个包含 3 个不同列表的 ViewPager。因此,用户可以在 3 个列表之间滑动。列表本身是使用 arrayAdapter 填充的,目前我的数组是在 strings.xml 中定义的,如下所示:
<string-array name="first_array">
<item>item1</item>
<item>item2</item>
<item>item3</item>
</string-array>
<string-array name="second_array">
...
我正在使用 FragmentStatePagerAdapter 生成不同的“页面”(每个页面都有一个唯一的列表),这是通过以下方式实现的:
@Override
public Fragment getItem(int i) {
Fragment fragment = new MyListFragment();
Bundle args = new Bundle();
int argValue=0;
switch(i) {
case 0: argValue = R.array.first_array; break;
case 1: argValue = R.array.second_array; break;
case 2: argValue = R.array.third_array; break;
}
args.putInt(MyListFragment.ARG_KEY, argValue);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() { return 3; }
但是,这并不好,因为如果我决定删除/添加/编辑列表的名称,我将不得不回到这里并在此处反映更改,从而引入强耦合。
所以我正在考虑创建一个保存数组而不是在 res/strings.xml 中的 java 类,在这种情况下,所有的耦合都会消失,但我不确定将资源放在 java 类中而不是在水库/。