2011-08-23 13 views
12

sto ottenendo errore inflating fragment error while running calling an Activity which having fragments.file XML Binary linea # 9: errore di classe di gonfiaggio frammento

lista di controllo è attività che contiene listview and Description fragments. e il suo codice XML è:

<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 lista di controllo è:

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; 
      } 
     } 

allo stesso modo ho frammento di descrizione sotto questo.

Ma sto ricevendo

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 

errore alla linea setContentView.

e la mia descrizione di classe frammento è: Modificato:

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; 
     } 
    } 

cosa sto facendo male qui ??

Grazie

+0

Dovresti pubblicare il tuo codice di classe Descrizione. – RoflcoptrException

+0

Controllare la mia classe di frammenti di descrizione modificata: che si trova solo nell'attività di elenco di controllo. – Udaykiran

+2

Ho provato questo esempio da qui: http://www.vogella.com/articles/Android/article.html#fragments e ho avuto 2 problemi: - Avevo bisogno di usare 'android.support.v4.app 'e non' android.app.Fragment' perché sto usando il livello API 8 (Android ha introdotto frammenti in Android 3.0 (livello API 11)) - 'android: layout_marginTop ="? android: attr/actionBarSize "' nella dichiarazione dei frammenti non è compatibile con il livello API 8 - vedi http: // StackOverflow.it/questions/7760817/how-to-get-androidattr-actionbarsize-with-compatibility-library – Paul

risposta

8

L'attività CheckList deve estendere FragmentActivity.

+0

Grazie! Mi hai salvato un sacco di tempo! – offset

1

<fragment class="com.uday.honeytest.CheckList$Description" è dove si sta facendo l'errore.

Sei sicuro di aver digitato correttamente il nome completo della classe?

Hai provato a pulire le proprietà del progetto/di fissaggio del progetto?

Non vedo nulla denominato Description in quella classe, che potrebbe essere il problema.

Spero che questo aiuti.

1

Ho appena rimosso onCreateView codice which contains inflating xml in listview fragment e passare al metodo onActivityCreated con quello operativo.

The reason may be: 

ListFragment ha un layout predefinito costituito da una singola visualizzazione di elenco. Tuttavia, se lo desideri, puoi personalizzare il layout del frammento restituendo la tua gerarchia di visualizzazione da onCreateView (LayoutInflater, ViewGroup, Bundle). Per fare ciò, la tua gerarchia di viste deve contenere un oggetto ListView con l'id "@android: id/list" (o lista se è nel codice)

Quindi la mia listview estende ListFragment e non coniferining list in xml, e direttamente noi può setListAdapter in onActivityCreated piuttosto che onCreateView.

+0

Potresti non aver avuto bisogno di farlo. Nel tuo esempio ho notato che non hai la direttiva @ Override sopra il tuo metodo onCreateView. È stato chiamato per niente? –

+1

Questo è un po 'fuorviante, come è successo con @ risposta di spin.goran – Prateek

Problemi correlati