私の財務管理に役立つアプリケーションを開発します。だから今私は、ViewPagerに接続されているTabLayoutを持っている。このViewPager用アダプタは次のようになります。今1つのフラグメントから別のフラグメントにデータを渡す| ViewPagerフラグメントの内容を変更する(ViewPager内)
package de.financeplanner.util.adapter.pager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import de.financeplanner.fragment.BaseListFragment;
/**
* Dient als Adapter für den ViewPager
* Diese Klasse wird an ein TabLayout gebunden um so bei einem
* Tabwechsel den ViewPager zu updaten.
* Created by Christian on 20.01.2017.
*/
public class PagerAdapter extends FragmentPagerAdapter {
private static final int PAGE_COUNT = 4;
private final String tabTitles[] = new String[] { "Übersicht", "Einnahmen", "Ausgaben", "Kategorie" };
public PagerAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public Fragment getItem(int position) {
BaseListFragment fragment = new BaseListFragment();
Bundle startCondition = new Bundle();
final String arg = "startCondition";
switch(position){
case PagerTabConstants.OVERVIEW: startCondition.putInt(arg, PagerTabConstants.OVERVIEW);
break;
case PagerTabConstants.REVENUES: startCondition.putInt(arg, PagerTabConstants.REVENUES);
break;
case PagerTabConstants.EXPENSES: startCondition.putInt(arg, PagerTabConstants.EXPENSES);
break;
case PagerTabConstants.CATEGORY: startCondition.putInt(arg, PagerTabConstants.CATEGORY);
break;
}
fragment.setArguments(startCondition);
return fragment;
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitles[position];
}
}
、あなたは、新しいフラグメントをロードする必要があるとクリックした項目のデータを新しいフラグメントに渡すべきである、項目にBaseListFragment内側をクリックすることができます。 これは私の問題です。私はどのようにしてフラグメントにデータを渡すことができますか?古いフラグメントを新しいフラグメントに置き換えるにはどうしたらいいですか?タブ内のフラグメントはFragmentPagerAdapterによってロードされるためです。より良く理解するため は、私はあなたのためのこのイメージを持っている:
うん、しかし、主な問題は、私のFragmentPagerAdapterがフラグメント置換を処理することです。手動でフレグランスを交換したいときは、コンテナIDが必要です。コンテナIDはありません.FragmentPagerAdapterがこれを処理するためです... – Chris