2016-05-11 6 views
0

Also hier ist der Code:Wie initialisiere ich das Fragment korrekt auf null?

private void selectItem(int position) { 

     Fragment fragment = null; 

     switch (position) { 
      case 0: 
       fragment = new HomeFragment(); 
       break; 
      case 1: 
       fragment = new DoctorFragment(); 
       break; 
      case 2: 
       fragment = new HospitalFragment(); 
       break; 
      case 3: 
       fragment = new SpecialClinicFragment(); 
       break; 
      case 4: 
       fragment = new PharmacyFragment(); 
       break; 

      default: 
       break; 
     } 

     if (fragment != null) { 
      FragmentManager fragmentManager = getFragmentManager(); 


      //the parameter "fragment" in this line of code gives an error message. 
      fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 



      mDrawerList.setItemChecked(position, true); 
      mDrawerList.setSelection(position); 
      getActionBar().setTitle(mNavigationDrawerItemTitles[position]); 
      mDrawerLayout.closeDrawer(mDrawerList); 

     } else { 
      Log.e("MainActivity", "Error in creating fragment"); 
     } 

enter image description here

Es scheint so, ich habe nicht richtig Fragment Instanz initialisiert.

Die Fehlermeldung war "Falscher 2. Argumenttyp", aber ich bin ziemlich sicher, dass ich den richtigen Parameter eingegeben habe.

+0

Mögliche doppelte. von [obj Fragment falsch 2. Argument Typ gefunden 'Android.support.V4.app.Fragment.' benötigt 'Android.app.Fragment'] (http://stackoverflow.com/questions/30339524/obj-fragment-wrong-2nd-argument-type-found-android-support-v4-app-fragment-re) –

Antwort

0

Problem ist nicht mit dem Argument.Sie ​​haben Fragment von android.support.v4 Bibliothek verwendet, aber Sie machen Transaktion auf android.app.fragment.

Lösung:

Import android.app.fragment statt android.support.v4.fragment

Da kann man nicht mit support.v4 Bibliothek und android.app mischen *

Verwandte Themen