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
Votre liste de contrôle d'activité doit s'étendre à FragmentActivity.
Je viens de supprimer onCreateView
code which contains inflating xml
dans listview fragment
et 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.
<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.