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);

上部に「連絡先」を表示し、その下に 2 つの連絡先を表示する方法。

ここに画像の説明を入力

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 に答える