it-swarm.com.ru

Строка №9 двоичного XML-файла: Ошибка надувания фрагмента класса

Получаю ошибку inflating fragment error while running calling an Activity which having fragments.

CheckList - это Activity, которая содержит listview and Description fragments., а ее 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>

Класс CheckList: 

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

точно так же у меня есть фрагмент описания ниже этого.

Но получаю 

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

ошибка в строке setContentView.

и мой класс фрагмента Описание: Отредактировано:

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

Что я здесь не так делаю ??

Спасибо

12
Udaykiran

Контрольный список вашей активности должен расширять FragmentActivity.

8
spin.goran

Я просто удалил onCreateView code which contains inflating xml из listview fragment и перешел в метод onActivityCreated, чтобы он работал.

The reason may be:

ListFragment имеет макет по умолчанию, который состоит из одного представления списка. Однако, если вы хотите, вы можете настроить макет фрагмента, возвращая свою собственную иерархию представления из onCreateView (LayoutInflater, ViewGroup, Bundle). Для этого ваша иерархия представления должна содержать объект ListView с идентификатором «@Android: id/list» (или list, если он в коде) 

Таким образом, мой просмотр списка расширяет ListFragment и не содержит списки в xml, и мы можем напрямую установить ListAdapter в onActivityCreated, а не в onCreateView.

1
Udaykiran

<fragment class="com.uday.honeytest.CheckList$Description" - то, где это получает ошибку. 

Вы уверены, что правильно указали полное имя класса? 

Вы пытались очистить свой проект/исправить свойства проекта? 

Я не вижу ничего с именем Description в этом классе, это может быть проблемой.

Надеюсь это поможет.

1
Codeman