Spielen mit Fragmenten in onTabSelected

Ihr lieben,

Suchte ich für dieses Problem für mehr als einen Tag, aber mit kein Glück.
Implementiere ich genau den code hier gepostet:

Hinzufügen Von Navigations-Tabs

Mein code für onTabSelected Aussehen:

public void onTabSelected(Tab tab, FragmentTransaction ft) {
        //Check if the fragment is already initialized
        if (mFragment == null) {
            //If not, instantiate and add it to the activity
            mFragment = Fragment.instantiate(mActivity, mClass.getName());
            ft.add(R.id.alert_fragment_container, mFragment, mTag);
        } else {
            //If it exists, simply attach it in order to show it
            ft.attach(mFragment);
        }

        //prepare adapter for ExpandableListView

        Log.i("After Adapter Created", "Passed");

        final ExpandableListAdapter expListAdapter = new AlertsAdapter(
                mActivity, myAlerts, violations);

        Log.i("After Adapter Initialized", "Passed");

       ((MyCustomFragment)mFragment).violations.setAdapter(expListAdapter);
    }

Der code funktioniert Prima, bis letzten Zeile, wo ich den adapter für die öffentliche statische Liste initialisiert, in MyCustomFragment im onCreateView hier mein code für das fragment:

public class MyCustomFragment extends Fragment {

    public MyCustomFragment() {
    }

    public static ExpandableListView violations; 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.fragment_alerts_poi, container, false);

        violations = (ExpandableListView) rootView.findViewById(R.id.POIAlertList);

        Log.i("onCreateView POI", "Called");

        return rootView;
    }
}

Es gibt Null-pointer-Fehler. Mit meinem debugging-logs, merke ich, dass dieses Protokoll Log.i("onCreateView POI", "Called"); erscheint nach dieser Log.i("After Adapter Initialized", "Passed");. Dies bedeutet, dass ich versuche, legen Sie die adapter für ein fragment ist nicht initialisiert, noch nicht.

Dies ist genau das problem ich bin Gesicht, ich muss die fed ExpandableListView mit Daten basierend auf der Registerkarte Auswahl in onTabSelected.

Was ich falsch mache? Was ist die beste Lösung?

Grüße,

"Ihr lieben"? +1 nur im Fall, dass Sie ein Programmier-Großmutter
Have a look @ this Tablayout.OnTabSelectedListener für die neuesten updates.

InformationsquelleAutor alawibh | 2014-01-20

Schreibe einen Kommentar