ListFragment的可扩展列表适配器

时间:2015-11-02 13:39:27

标签: android android-fragments android-activity

我是Android新手。我已经为联系示例创建了一个自动生成的列表活动。

我有两件事 -

 ContactListActivity.java
 /** auto generated code /**

ContactListFragment.java我已修改此方法以设置我的列表。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    /*** some code **/
    setListAdapter(new ArrayAdapter<MyContact.Contact>(
            getActivity(),
            android.R.layout.simple_list_item_activated_1,
            android.R.id.text1,
            contactList));

我还没有修改任何xml。

现在我想显示一个可扩展的List而不是简单的列表。我写了一个简单的SimpleExpandableListAdapter

SimpleExpandableListAdapter myAdapter = new SimpleExpandableListAdapter(
            getActivity(),
            groupData,
            android.R.layout.simple_expandable_list_item_1,
            new String[] { NAME, IS_EVEN },
            new int[] { android.R.id.text1, android.R.id.text2 },
            childData,
            android.R.layout.simple_expandable_list_item_2,
            new String[] { NAME, IS_EVEN },
            new int[] { android.R.id.text1, android.R.id.text2 }
    );

但我无法通过调用

成功设置此适配器
setListAdapter(myAdapter)

显示编译错误。

android.widget.ListAdapter can not be applied to android.widget.SimpleExpandableListAdapter 

我必须做些什么改变?

这是我的activity_contact_list.xml

<fragment xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/contact_list"
    android:name="com.example.sarvesh.litecontacts.ContactListFragment"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:layout_marginLeft="16dp" android:layout_marginRight="16dp"
    tools:context=".ContactListActivity" tools:layout="@android:layout/expandable_list_content"  />

1 个答案:

答案 0 :(得分:0)

错误:

  

android.widget.ListAdapter无法应用于   android.widget.SimpleExpandableListAdapter

表示当前在ListActivity类中扩展ContactListActivity,但将SimpleExpandableListAdapter适配器对象传递给无效的setListAdapter方法。

要在ContactListActivity课程中使用展开式列表展开ExpandableListActivity而不是ListActivity