getChildFragmentManager () nicht aufgelöst werden kann oder verwiesen werden kann

Ich weiß, es gibt viele Beiträge im forum zu diesem Thema bereits, aber keiner löste mein Problem

Mein code sieht wie folgt aus:

private SectionsPagerAdapter myAdapt;
private ViewPager myPager;
....

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home_screen);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    //Create the adapter that will return a fragment for each of the three
    //primary sections of the activity.
    if (mSectionsPagerAdapter == null) {
        mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
    }
    //Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.container);
    mViewPager.setAdapter(mSectionsPagerAdapter);
....

Aber ich bekomme die Cannot resolve method getChildFragmentManager () scheint das zu machen viele Probleme.

Ich habe bereits versucht, eine ziemlich ganze Menge Dinge:

  • Ich habe in der inbound-support Bibliothek für die richtige version.
  • Ich habe versucht, eine Referenz-Methode als android.support.v7.app.getChildFragmentManager() die hab mir die Cannot make static reference from non-static context Fehler.
  • Ich nach der v4 support library

Das ganze Problem entstand, weil die Fragmente wiederum leer, wenn ich zurück in die Aktivität. Wenn Sie noch eine andere Idee, fühlen Sie sich frei, zu Antworten oder einen Kommentar, dann wird die ganze Frage in Bezug auf die getChildFragmentManager ist ohnehin gelöst

Ich habe keine Ahnung, was zu tun ist...

ps: hier ist die ganze Klasse Umsetzung:

import android.support.v4.app.FragmentManager;
import android.content.Intent;
import android.os.AsyncTask;
import android.support.design.widget.TabLayout;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;

import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;

import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;


public class HomeScreen extends AppCompatActivity {

    int index = 0;
    int semIndex = 0;

    public static final String GROUP_EXTRA = "Group";
    public static final String HOME_SCREEN_LOG = "HomeScreen Activity";

    /**
     * The {@link android.support.v4.view.PagerAdapter} that will provide
     * fragments for each of the sections. We use a
     * {@link FragmentPagerAdapter} derivative, which will keep every
     * loaded fragment in memory. If this becomes too memory intensive, it
     * may be best to switch to a
     * {@link android.support.v4.app.FragmentStatePagerAdapter}.
     */
    private SectionsPagerAdapter mSectionsPagerAdapter;

    /**
     * The {@link ViewPager} that will host the section contents.
     */
    private ViewPager mViewPager;

    LayoutInflater inflater;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home_screen);

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        //Create the adapter that will return a fragment for each of the three
        //primary sections of the activity.
        if (mSectionsPagerAdapter == null) {
            mSectionsPagerAdapter = new SectionsPagerAdapter(getChildFragmentManager());
        }
        //Set up the ViewPager with the sections adapter.
        mViewPager = (ViewPager) findViewById(R.id.container);
        mViewPager.setAdapter(mSectionsPagerAdapter);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(mViewPager);

        final Bundle b;
        if ((b =this.getIntent().getExtras()) != null) {
            AsyncTask at = new AsyncTask() {
                @Override
                protected Object doInBackground(Object[] params) {

                    String  groupName = b.getString(HomeScreen.GROUP_EXTRA),
                            desc = b.getString(NewEditGroupActivity.DESC_EXTRA),
                            time = b.getString(NewEditGroupActivity.TIME_EXTRA),
                            date = b.getString(NewEditGroupActivity.DATE_EXTRA);

                    int numOfPart = b.getInt(NewEditGroupActivity.NUM_EXTRA);

                    boolean regular = b.getBoolean(NewEditGroupActivity.IS_NEW);

                    ExpandListChild elc = new ExpandListChild(desc,String.valueOf(numOfPart),date,time,regular);
                    ExpandListGroup elg = new ExpandListGroup(groupName);

                    MyLgFragment lf = (MyLgFragment) mSectionsPagerAdapter.getItem(0);
                    AllLgFragment af = (AllLgFragment) mSectionsPagerAdapter.getItem(1);

                    af.add(elc,elg);
                    lf.add(elc,elg);
                    return null;
                }
            };
        }

        mViewPager = (ViewPager) findViewById(R.id.container);
        mViewPager.setAdapter(mSectionsPagerAdapter);    
        inflater = getLayoutInflater();
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_home_screen, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        //Handle action bar item clicks here. The action bar will
        //automatically handle clicks on the Home/Up button, so long
        //as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Verwenden getChildFragmentManager Methode für die Unterbringung und Verwaltung der Fragmente innerhalb des aktuellen Fragments und verwenden getSupportFragmentManager Methode bei der Platzierung und Verwaltung der Fragmente in der Tätigkeit

InformationsquelleAutor Do Re | 2016-01-29

Schreibe einen Kommentar