如何在 Android for Android api 11+ 中的列表视图中显示联系人
我很抱歉,如果这看起来像同一个问题一百万次...但是谷歌搜索这个没有提供任何结果,只是一堆过时的教程使用和其他弃用的解决方案...managedQuery
我通过Android开发人员培训检索联系人列表,但教程不完整,甚至下载示例代码也没有帮助,因为示例代码用于更高级的联系人列表操作(搜索等)。
无论如何,没有理由不应该有一个简单的解决方案,所以我希望有人可以在这里回答,因为我确信这已经做了一百万次,我相信其他几十个刚开始的机器人开发人员会喜欢这一点。
我已经按照教程,尽我所知,没有联系人出现。我认为最重要的是,这是一个指向 .我很困惑这应该如何以某种方式拉动一组联系人姓名。TO_IDS
android.R.id.text1
另外,我很困惑为什么当最终目标是显示列表视图时需要文本视图...在本教程中,我们有mContactsList,它是一个列表视图...但是,我们使用一个适配器填充列表视图,该适配器指向该适配器只是由TO_IDS(一个整数数组)填充的文本视图。R.layout.contact_list_item
mContactsList = (ListView) getActivity().findViewById(R.layout.contact_list_view);
mCursorAdapter = new SimpleCursorAdapter(
getActivity(),
R.layout.contact_list_item,
null,
FROM_COLUMNS, TO_IDS,
0);
mContactList.setAdapter(mCursorAdapter);
我做错了什么,如何简单地在列表视图中显示联系人列表?
编辑:添加我的代码:
在我的片段类中:
public class MyFragment extends Fragment implements
LoaderManager.LoaderCallbacks<Cursor>{
private static final String[] FROM_COLUMNS = {ContactsContract.Contacts.DISPLAY_NAME_PRIMARY };
private static final int[] TO_IDS = {android.R.id.text1};
ListView mContactList;
private SimpleCursorAdapter mCursorAdapter;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
return inflater.inflate(R.layout.contact_list_view,container,false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
mContactsList = (ListView) getActivity().findViewById(R.layout.contact_list_view);
mCursorAdapter = new SimpleCursorAdapter(
getActivity(),
R.layout.contact_list_item,
null,
FROM_COLUMNS, TO_IDS,
0);
mContactList.setAdapter(mCursorAdapter);
}
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
return null;
}
@Override
public void onLoadFinished(Loader<Cursor> cursorLoader, Cursor cursor) {
}
@Override
public void onLoaderReset(Loader<Cursor> cursorLoader) {
}
}
在我的activity_main.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<fragment
android:id ="@+id/contactListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:name="preamble.myapp.MyFragment"/>
</LinearLayout>
在我的contact_list_view xml中:
<?xml version="1.0" encoding="utf-8"?>
<ListView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/list"
android:layout_height="match_parent"
android:layout_width="match_parent"/>
在我的contact_list_item xml 中
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
最后,对于contact_list_layout xml:
我应该在?这只是一个空的吗?本教程中不清楚如何处理此 xml。它说这个XML是片段,但如果它是片段,为什么我们在?contact_list_layout.xml
<LinearLayout>
listview
contact_list_view.xml