web-dev-qa-db-fra.com

Ligne de fichier XML binaire n ° 9: erreur lors de l’ajout du fragment de classe

Je reçois l'erreur inflating fragment error while running calling an Activity which having fragments.

CheckList est une 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>

La 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 Description fragment ci-dessous.

Mais je suis en train de 

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 setContentView.

et ma description fragment class est: Edited:

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

Qu'est-ce qui ne va pas ici ??

Merci

12
Udaykiran

Votre liste de contrôle d'activité doit s'étendre à FragmentActivity.

8
spin.goran

Je viens de supprimer onCreateView code which contains inflating xml dans listview fragmentet de passer à la méthode onActivityCreated avec qui fonctionne.

The reason may be:

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

Donc, ma liste de vues étend ListFragment et ne contient pas de liste dans XML, et directement nous pouvons définir ListAdapter dans onActivityCreated plutôt que dans onCreateView.

1
Udaykiran

<fragment class="com.uday.honeytest.CheckList$Description" est l'endroit où l'erreur se produit. 

Êtes-vous sûr que le nom de classe pleinement qualifié est correctement saisi? 

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

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

J'espère que cela t'aides.

1
Codeman