http://qiita.com/Yuki_Yamada/items/6d8b38effeb38ed96d78
に書いてある通りにlistview,viewpager,tablayout,等を設定しました。
(実現したいこと)
タブが3つありlistviewにtab1の内容をセットして表示します。タブをクリックするなり横スワイプするなりしてtab2に来ればlistvewにtab2の内容をセットして表示したい。
(現在のコード)
SectionsPagerAdapter sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager); viewPager.setAdapter(sectionsPagerAdapter); tabLayout.setupWithViewPager(viewPager); //viewpagerと連携させる時 tabLayout.getTabAt(0).setText("テスト1"); tabLayout.getTabAt(1).setText("テスト2"); tabLayout.getTabAt(2).setText("テスト3"); public class SectionsPagerAdapter extends FragmentPagerAdapter { public SectionsPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { return MyFragment.newInstance(position + 1); } @Override public int getCount() { return 3; } @Override public CharSequence getPageTitle(int position) { return null; } } public static class MyFragment extends Fragment { private boolean mIsRequesting = false; private static final String ARG_SECTION_NUMBER = "section_number"; public MyFragment() { } public static MyFragment newInstance(int page) { MyFragment fragment = new MyFragment(); Bundle bundle = new Bundle(); bundle.putInt("PAGE", page); fragment.setArguments(bundle); return fragment; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup viewpager, Bundle savedInstanceState) { int page = getArguments().getInt("PAGE", 1); ListView listView = (ListView) inflater.inflate(R.layout.fragment_main, viewpager, false); int sectionNumber = getArguments().getInt(ARG_SECTION_NUMBER); ((appl) getActivity()).getNew(sectionNumber); //データを返却する //ここでAdapterにデータを返却などの操作を行う //ここで確認作業(ア) //loadItems(); listView.setAdapter(sectionAdapter); //取得が完全に完了したら動く return listView; } } //確認作業メソッド private void loadItems() { }
(困っていること)非同期通信(AsyncTask)でlistviewにセットする内容を処理しているが非同期通信で内容を作成している間に return listViewまできてしまいnullがセットされ停止しています。
解決策としては(ア)の部分に非同期通信でtab1,tab2,tab3にセットする内容が準備できたよというloadItemsを仕込むことらしいのですが、肝心のloadItemsメソッドの中身をどう書けば良いか全然わかりません。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/06 05:35
2017/02/06 06:02
2017/02/06 07:04 編集
2017/02/06 08:53
2017/02/06 09:11
2017/02/06 09:29
2017/02/06 10:12
2017/02/06 10:16
2017/02/06 10:45