1

フラグメントにPinnedHeaderListViewというライブラリを実装して、リストビューに Pinnedヘッダーを持たせようとしています。

これは私が思いついたものです

public class MyFragment extends Fragment{

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.main, container, false);

    PinnedHeaderListView listview= (PinnedHeaderListView) v.findViewById(R.id.pinnedListView);
    MyFragmentAdapter adapter = new MyFragmentAdapter ();


    LinearLayout header1 = (LinearLayout)inflater.inflate(R.layout.list_item, null);
    ((TextView) header1.findViewById(R.id.textItem)).setText("HEADER 1");

    LinearLayout header2 = (LinearLayout) inflater.inflate(R.layout.list_item, null);
    ((TextView) header2.findViewById(R.id.textItem)).setText("HEADER 2");

    LinearLayout footer = (LinearLayout) inflater.inflate(R.layout.list_item, null);
    ((TextView) footer.findViewById(R.id.textItem)).setText("FOOTER");

    listview.addHeaderView(header1);
    listview.addHeaderView(header2);
    listview.addFooterView(footer);

    comicList.setAdapter(adapter);

    return v;
}

}

可能な限り、ライブラリの例に従おうとしました。私が変更する唯一のことは、フラグメントに実装することです。これは、InflateException を引き起こす私の main.xml です。

    <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

<za.co.immedia.pinnedheaderlistview.PinnedHeaderListView
        android:id="@+id/pinnedListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@android:color/white">

</za.co.immedia.pinnedheaderlistview.PinnedHeaderListView>

</LinearLayout>

他のレイアウトは正常に機能します。

これはエラーです:

FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #8: Error inflating class za.co.immedia.pinnedheaderlistview.PinnedHeaderListView
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:707)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)

どこに問題があるのか​​ わかりません。ライブラリを追加しましたが、コンパイル時にエラーは発生しませんが、実行時にクラッシュします。何か提案はありますか?

4

1 に答える 1