私は最初の 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 クラスではなく Java クラスに配置することをお勧めします。 res/.