Tabのフラグメントクラスを共通化できないか?と考えています。
java
1 2 @Override 3public Fragment getItem(int position){ 4 switch (position){ 5 case 0: 6 return AllFragment.newInstance(tabList.get(position)); 7 case 1: 8 return CountryFragment.newInstance(); 9 case 2: 10 return RegionFragment.newInstance(); 11 case 3: 12 return PrefecturesFragment.newInstance(); 13 case 4: 14 return EtcFragment.newInstance(); 15 default: 16 return null; 17 } 18}
という書き方がネットで調べるとベターな感じなのですが、ほとんどレイアウトがそれぞれ違っているので、こういう書き方でもいいんじゃないか?と思うのですが、今回作っているのは全部のタブページが表示しているデータをフィルターかけているだけなので、レイアウトも全く同じでいいので、フラグメントクラスは1つでいけるんじゃないか?と考えました。
ただ、それが実現できなかったので質問させてください…。
java
1 @Override 2 public Fragment getItem(int position) { 3 4 AllFragment fragment = new AllFragment(); 5 fragment.setTab(tabList.get()); 6 return fragment; 7}
こういう感じで毎回newしてやれば、毎回生成されてできるんじゃないか?と思ったのですが、そう簡単ではなかったようで…。
今後は表示ごとにnewされてしまって、挙動がおかしくなってしまいました…。
そこで、質問なのですが、この場合の打開策としてはどういった手段が効果的なんでしょうか?
すでに実体化されているかどうかを見に行って、もし「null」だったらnewしない。みたいな書き方にしたほうがいいのでしょうか?
それとも、ここは共通化を諦めて個別にシングルトンクラスを作ったほうがいいんでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/24 23:54
2016/10/25 01:49