2013-10-27 3 views
0

Я пытаюсь добавить заголовок к моему ListView, но, к сожалению, я получаю эту ошибку:Добавление заголовка к ListFragment

10-28 01:35:29.394: E/AndroidRuntime(17389): FATAL EXCEPTION: main 
10-28 01:35:29.394: E/AndroidRuntime(17389): java.lang.ClassCastException: android.widget.HeaderViewListAdapter cannot be cast to com.hb.views.PinnedSectionListView$PinnedSectionListAdapter 
10-28 01:35:29.394: E/AndroidRuntime(17389): at com.hb.views.PinnedSectionListView$2.onScroll(PinnedSectionListView.java:91) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.AbsListView.invokeOnItemScrollListener(AbsListView.java:1340) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.ListView.layoutChildren(ListView.java:1762) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.AbsListView.onLayout(AbsListView.java:2012) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:678) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at com.android.internal.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:349) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.widget.FrameLayout.onLayout(FrameLayout.java:448) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.View.layout(View.java:14296) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewGroup.layout(ViewGroup.java:4562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1976) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1730) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.Choreographer.doFrame(Choreographer.java:532) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.os.Handler.handleCallback(Handler.java:730) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.os.Handler.dispatchMessage(Handler.java:92) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.os.Looper.loop(Looper.java:137) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at android.app.ActivityThread.main(ActivityThread.java:5289) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at java.lang.reflect.Method.invokeNative(Native Method) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at java.lang.reflect.Method.invoke(Method.java:525) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
10-28 01:35:29.394: E/AndroidRuntime(17389): at dalvik.system.NativeStart.main(Native Method) 

Мой код:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_cat, null); 
    return view; 
} 

@Override 
public void onActivityCreated(Bundle savedInstanceState) { 
    super.onActivityCreated(savedInstanceState); 

    TextView header = new TextView(getActivity()); 
    header.setText("Header"); 
    getListView().addHeaderView(header); 

    // ... adding objects to the adapter ... 

    ArticleAdapter adapter = new ArticleAdapter(getActivity(), android.R.layout.simple_list_item_1, android.R.id.text1, objects); 
    setListAdapter(adapter); 
} 

Я использую библиотека с прикрепленным списком.

Заранее спасибо!

+0

Просьба показать файл макета – Eugene

+0

, какой класс расширяет ArtAdapter? – Eugene

+0

Pinned-section-listview пока не поддерживает заголовки списков. –

ответ

1

вы пытаетесь добавить заголовок getListView(). AddHeaderView (заголовок);

это приводит к ListView, чтобы обернуть адаптер в еще один адаптер, HeaderViewListAdapter, в то время как библиотека ожидает, что это собственный адаптер

// get expected adapter or fail 
PinnedSectionListAdapter adapter = (PinnedSectionListAdapter) view.getAdapter(); 

Вы либо исправить используемую библиотеку, или после ошибки на это автора, или стараться не использовать addHeader

+0

Спасибо. Как мне исправить эту библиотеку? Есть ли у вас какие-либо идеи? – Dennis

+0

Я внес некоторые изменения в оригинальный проект, теперь мы можем добавить заголовок в listview, но он потерял все свои великолепные свойства. Разделы больше не придерживаются вершины listview. Если мне повезет, я дам вам знать. тем временем, еще один вопрос - вам действительно нужен заголовок? Он будет прокручиваться с контентом. Рассмотрите возможность добавления простого текстового представления поверх списка. – Eugene

+0

Прежде всего - Большое спасибо. Мне нужно положить что-то в верхнюю часть экрана, и когда вы прокрутите вниз - он останется наверху (я имею в виду, вы не увидите его после прокрутки вниз). – Dennis

Смежные вопросы