2011-08-23 2 views
12

Am obtenir Erreur inflating fragment error while running calling an Activity which having fragments.ligne fichier XML binaire # 9: Erreur fragment de classe gonflable

CheckList est l'activité qui contient listview and Description fragments. et son code xml est:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:orientation="horizontal" 
     android:layout_width="match_parent" android:layout_height="match_parent"> 

     <fragment class="com.uday.honeytest.CheckList$listview" 
       android:id="@+id/titles" android:layout_weight="1" 
       android:layout_width="0px" android:layout_height="match_parent" /> 

     <fragment class="com.uday.honeytest.CheckList$Description" 
     android:id="@+id/details" android:layout_weight="1" 
       android:layout_width="0px" android:layout_height="match_parent" 
       android:background="?android:attr/detailsElementBackground" /> 

    </LinearLayout> 

classe CheckList est:

public class CheckList extends Activity { 

    static int position=0; 
    static CheckList check; 

    public void onCreate(Bundle saved){ 

     super.onCreate(saved); 
     setContentView(R.layout.checklist); 


    } 

    public static class listview extends ListFragment { 

      View mConverView; 
      String[] items; 



      @Override 
       public void onActivityCreated(Bundle savedInstanceState) { 
        super.onActivityCreated(savedInstanceState); 
      } 

      public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) { 
       xxxxxx.. 
        return mConverView; 
      } 
     } 

de même j'ai fragment de description ci-dessous.

Mais je suis obtenir

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.uday.honeytest/com.uday.honeytest.CheckList}: android.view.InflateException: Binary XML file line #9: Error inflating class fragment 

erreur à la ligne de setContentView.

et ma description classe fragment est: Modifié:

public static class Description extends Fragment { 

     View mConverView; 
     String details[]; 

     public static Description getInstance() { 
      Description desc=new Description(); 
      return desc; 

     } 

     @Override 
      public void onActivityCreated(Bundle savedInstanceState) { 
       super.onActivityCreated(savedInstanceState); 
     } 


     public View onCreateView(LayoutInflater inflater, ViewGroup container, 
       Bundle savedInstanceState) { 


      TextView textview=new TextView(getActivity()); 
      textview.setLayoutParams(new LayoutParams(MarginLayoutParams.WRAP_CONTENT, MarginLayoutParams.WRAP_CONTENT)); 



      return textview; 
     } 
    } 

Que fais mal ici ??

Merci

+0

Vous devriez vraiment poster votre code de classe Description. – RoflcoptrException

+0

Vérifiez ma classe de fragment de description éditée: qui se trouve uniquement dans CheckList Activity. – Udaykiran

+2

J'ai essayé cet exemple d'ici: http://www.vogella.com/articles/Android/article.html#fragments et j'ai eu 2 problèmes: - Je devais utiliser 'android.support.v4.app 'et pas' android.app.Fragment' parce que je cours sous le niveau d'API 8 (Android a présenté des fragments dans Android 3.0 (niveau d'API 11)) - 'android: layout_marginTop ="? android: attr/actionBarSize "' dans la déclaration de fragment n'est pas compatible avec le niveau d'API 8 - voir http: // stackoverflow.com/questions/7760817/comment-obtenir-androidattr-actionbarsize-with-compatibility-library – Paul

Répondre

8

Votre activité CheckList devrait étendre FragmentActivity.

+0

Merci! Tu m'as sauvé beaucoup de temps! – offset

1

<fragment class="com.uday.honeytest.CheckList$Description" est où il devient l'erreur.

Êtes-vous sûr d'avoir correctement tapé le nom complet de la classe?

Avez-vous essayé de nettoyer votre projet/de réparer les propriétés du projet?

Je ne vois rien de Description dans cette classe, c'est peut-être le problème.

Espérons que cela aide.

1

Je viens de retirer onCreateView code which contains inflating xml en listview fragment et passer en onActivityCreated méthode avec cela son fonctionnement.

The reason may be: 

ListFragment a une disposition par défaut qui consiste en une seule vue de liste. Toutefois, si vous le souhaitez, vous pouvez personnaliser la disposition du fragment en renvoyant votre propre hiérarchie de vue à partir de onCreateView (LayoutInflater, ViewGroup, Bundle). Pour ce faire, votre hiérarchie de vues doit contenir un objet ListView avec l'ID "@android: id/list" (ou la liste si c'est dans le code)

Donc ma listview étend ListFragment et non pas la liste en compilant xml, et directement nous Peut setListAdapter dans onActivityCreated plutôt que dans onCreateView.

+0

Vous n'avez peut-être pas besoin de faire cela. J'ai noté dans votre exemple que la directive @Override n'était pas au-dessus de votre méthode onCreateView. Est-ce qu'on l'appelait du tout? –

+1

Ceci est un peu égaré car vous devez avoir parti avec la réponse @ spin.goran – Prateek

Questions connexes