Question

Cela ne se produit que lors de l'utilisation de la bibliothèque de compatibilité pour les appareils antérieurs à 3.0

J'obtiens une erreur que je ne parviens pas à identifier.J'ai une activité avec un ListFragment et un fragment standard.C'est exactement comme l'exemple fourni dans la section Développeurs du Guide des développeurs Android.

Sous-classe ListFragment (aucune fonction remplacée)

public class ItemListFragment extends ListFragment

<₹MainActivity

public class ItemViewerActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.item_viewer);
    }
}

Mise en page Xml pour MainActivity

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal">
  <fragment class="org.example.ItemListFragment"
    android:id="@+id/item_list_fragment"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1" />
  <FrameLayout
    android:id="@+id/item_info_frame"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:layout_weight="1" />
</LinearLayout>

Message d'erreur de LogCat

ERREUR / AndroidRuntime: Causé par: java.lang.ClassCastException: org.example.ItemListFragment ne peut pas être converti en android.app.Fragment

Était-ce utile?

La solution

Après quelques recherches approfondies sur Google, j'ai trouvé un article qui faisait ressortir une jolie petite friandise.Lorsque vous utilisez la bibliothèque de compatibilité, vos activités qui utilisent des fragments doivent étendre FragmentActivity.Une fois que j'ai fait cela, l'erreur ne s'est plus présentée.

Autres conseils

Pour moi, le problème était que j'avais oublié de modifier le manifeste.Suite à la suggestion du tutoriel, j'ai converti mon activité en fragment et créé une activité shell pour l'appeler.Mon manifeste indiquait toujours la classe Fragment conduisant à une exception de diffusion de classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top