0

我试图将 ExpandableListAdapter 添加到 DialogPrefence。

我的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/channels_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:orientation="horizontal" >
    <LinearLayout
        android:id="@+id/channelsProgress"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:orientation="vertical"
        android:visibility="gone" >

        <ProgressBar
            android:id="@+id/pbChannelsProgress"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:descendantFocusability="beforeDescendants" >
        </ProgressBar>
    </LinearLayout>
    <ExpandableListView
        android:id="@+id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
         >
    </ExpandableListView>

</LinearLayout>

这就是我使用 ListView 的方式

HiddenChannelsListAdapter adapter = new HiddenChannelsListAdapter(ctx, tree, subscribed_channelsList);
ListView lv = (ListView) vw.findViewById(R.id.list);
lv.setAdapter(adapter);

我必须如何使用 ExpandableListAdapter 来做到这一点?

ExampleReallySimpleExpandableListAdapter adapter = new ExampleReallySimpleExpandableListAdapter(ctx, groupData, childData);
AbsListView lv = (AbsListView) vw.findViewById(R.id.list);
lv.setAdapter(adapter);

这导致:

03-25 14:24:23.780: E/AndroidRuntime(22187): FATAL EXCEPTION: main
03-25 14:24:23.780: E/AndroidRuntime(22187): java.lang.ClassCastException: com.example.tvrplayer.ExampleReallySimpleExpandableListAdapter cannot be cast to android.widget.ListAdapter
4

1 回答 1

1

调用setAdapter(ExpandableListAdapter)from ExpandableListView,而不是通用setAdapter(ListAdapter)from AbsListView

也就是改变

AbsListView lv = (AbsListView) vw.findViewById(R.id.list);

ExpandableListView lv = (ExpandableListView) vw.findViewById(R.id.list);
于 2013-03-25T12:36:41.820 回答