Дело в том что имеется Класс, наследуемый от BroadcastReciver, который обрабатывает исключение и записывает в бд входящие сообщения, но есть сообщение определённого содержания которые обрабатываются и должны отсылаться в определённый фрагмент, если правильно понимаю то вариант передачи один через intent в mainActivity а из него в bundle.. и через FragmentTransaction уже в Fragment. Тут и возникает проблема т.к. экземпляры фрагменты для отображение возвращаются через FragmentPagerAdapter. Для каждого фрагмента свой класс и layout.
вот моя попытка реализации:
Код: Выделить всё
private ViewPager mViewPager;
class SampleFragmentPagerAdapter extends FragmentPagerAdapter {
SampleFragmentPagerAdapter(FragmentManager fm) {
super(fm);
}
/**
* Return the {@link android.support.v4.app.Fragment} to be displayed at {@code position}.
* <p>
* Here we return the value returned from {@link SamplePagerItem#//createFragment()}.
*/
@Override
public Fragment getItem(int position) {
mTabsPosition = position;
if (position == 1) {
if (position == 1) {
String name = makeFragmentName(mViewPager.getId(), position);
getChildFragmentManager().findFragmentByTag(name);
Log.d(LOG_TAG, "Содержимое " + name);
}
return frag2.newInstance(position);
}
else if (position == 2){
if (position == 2) {
String name = makeFragmentName(mViewPager.getId(), mTabsPosition);
getChildFragmentManager().findFragmentByTag(name);
Log.d(LOG_TAG, "Содержимое " + name);
}
return frag3.newInstance(position);
}
else if (position == 3){
if (position == 3) {
String name = makeFragmentName(mViewPager.getId(), mTabsPosition);
getChildFragmentManager().findFragmentByTag(name);
Log.d(LOG_TAG, "Содержимое " + name);
}
return frag4.newInstance(position);
}
else
{
if (position == 0) {
String name = makeFragmentName(mViewPager.getId(), mTabsPosition);
getChildFragmentManager().findFragmentByTag(name);
Log.d(LOG_TAG, "Содержимое " + name);
}
return frag1.newInstance(position);}
}
private String makeFragmentName(int viewId, int index) {
return "android:switcher:" + viewId + ":" + index;
}
}
Вот собственно как я пытаюсь всеё это чудо запихать в bundle в классе MainActivity:
Код: Выделить всё
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);//activity_main
if( getIntent() != null ) {
if( getIntent().getExtras() != null ) {
stat = getIntent().getExtras().getString(key);
Log.d(LOG_TAG, "Содержимое " + stat + "Во main instant");
}
}
if (savedInstanceState == null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
SlidingTabsColorsFragment fragment = new SlidingTabsColorsFragment();
transaction.replace(R.id.sample_content_fragment, fragment);
transaction.commit();
}
if (savedInstanceState != null) {
Log.d(LOG_TAG, "Создал");
Bundle bundle1 = new Bundle();
bundle1.putString("tag", stat);
Fragment4 yfc = (Fragment4) getSupportFragmentManager().findFragmentByTag(TAGfarg4);
yfc.setArguments(bundle1);
Log.d(LOG_TAG, "Содержимое " + bundle1 + "Во main");
FragmentTransaction ft = getSupportFragmentManager().beginTransaction().replace(R.id.sample_content_fragment, yfc, TAGfarg4);
ft.commit();
}
}
String TAGfrag4 = "android:switcher:2131296289:4"
Ну а далее понятно ловлю bundle в Fragment4...
Ну к сожалению содержимое все время null.