フラグメントに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)
どこに問題があるのか わかりません。ライブラリを追加しましたが、コンパイル時にエラーは発生しませんが、実行時にクラッシュします。何か提案はありますか?