0

私は最初の 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/.

4

1 に答える 1