0

我有这个代码

public class MyFragment extends SherlockFragment {

    public static Fragment newInstance(Context context) {
        MyFragment f = new MyFragment();

        return f;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View v = inflater.inflate(R.layout.fragment_pager_list, container,false);
        View tv = v.findViewById(R.id.text);
        ((TextView)tv).setText("Layout One" );
        return v;
    }
}

我创建了一个包含联系人列表的适配器,我想将该联系人列表放入 fragment_pager_list 中。我正在使用此代码

mAdapter = new SimpleCursorAdapter(getActivity(),
                R.layout.fragment_pager_list, null,
                new String[] {ContactsContract.Contacts.DISPLAY_NAME},
                new int[] { R.id.text}, 0);

        setListAdapter(mAdapter);

        // Start out with a progress indicator.
        setListShown(true);

如何在顶部显示“联系人”,在其下方显示我的两个联系人。

在此处输入图像描述

fragment_pager_list.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:drawable/gallery_thumb">

    <TextView android:id="@+id/text"
        android:layout_width="match_parent" android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="@string/hello_world"/>

    <!-- The frame layout is here since we will be showing either
    the empty view or the list view.  -->
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="0dip"
        android:layout_weight="1" >
        <!-- Here is the list. Since we are using a ListActivity, we
             have to call it "@android:id/list" so ListActivity will
             find it -->
        <ListView android:id="@android:id/list"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:drawSelectorOnTop="false"/>

        <!-- Here is the view to show if the list is emtpy -->
        <TextView android:id="@android:id/empty"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="No items."/>

    </FrameLayout>

</LinearLayout>
4

1 回答 1

0

你应该扩展SherlockListFragment. 然后你可以调用setListAdapter它(文档)。

这在过去对我有用:

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

    setListAdapter(/* Your adapter, should extend BaseAdapter or similar */);

    return v;
}

编辑:另外,我相信你的 ListView 必须有 ID android:id="@android:id/list"。如果它不适用于该 ID,请尝试此处找到的解决方案。

于 2012-06-08T05:38:33.540 回答