我有这段代码
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>
答案 0 :(得分:0)
您应该延长SherlockListFragment
。然后,您可以在其上调用setListAdapter
(documentation)。
过去这对我有用:
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,请尝试找到 here 的解决方案。