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

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

Контрольный список - это активность, которая содержит 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>

Класс контрольного списка:

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.

и мой класс фрагмента описания: 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;
        }
    }

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

Спасибо

Ответы [ 3 ]

8 голосов
/ 09 сентября 2011

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

1 голос
/ 23 августа 2011

Я только что удалил onCreateView код 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 голос
/ 23 августа 2011

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

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

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

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

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

...