Android的listView动态显示联系人列表
时间: 2024-03-24 12:41:09 浏览: 69
要在Android的ListView中动态显示联系人列表,您需要执行以下步骤:
1. 首先,您需要获取设备上的联系人列表,可以使用ContentResolver类和ContactsContract类来完成这个任务。以下是获取联系人列表的代码示例:
```
ContentResolver cr = getContentResolver();
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
null, null, null, null);
if (cur.getCount() > 0) {
while (cur.moveToNext()) {
String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
// Do something with contact name...
}
}
cur.close();
```
2. 接下来,您需要创建一个布局文件来显示联系人列表。您可以使用ListView和适配器来显示联系人列表。以下是一个简单的布局文件示例:
```
<ListView
android:id="@+id/listView1"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
```
3. 然后,您需要创建一个适配器类来将联系人列表显示在ListView中。以下是一个简单的适配器类示例:
```
public class ContactListAdapter extends BaseAdapter {
private List<Contact> contactList;
private Context context;
public ContactListAdapter(Context context, List<Contact> contactList) {
this.context = context;
this.contactList = contactList;
}
@Override
public int getCount() {
return contactList.size();
}
@Override
public Object getItem(int position) {
return contactList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.contact_item_layout, parent, false);
}
Contact contact = contactList.get(position);
TextView nameTextView = convertView.findViewById(R.id.nameTextView);
nameTextView.setText(contact.getName());
TextView phoneTextView = convertView.findViewById(R.id.phoneTextView);
phoneTextView.setText(contact.getPhone());
return convertView;
}
}
```
4. 最后,您需要将适配器设置到ListView中。以下是一个简单的示例:
```
ListView listView = findViewById(R.id.listView1);
ContactListAdapter adapter = new ContactListAdapter(this, contactList);
listView.setAdapter(adapter);
```
其中,contactList是一个包含联系人信息的列表。
这样,您就可以在Android的ListView中动态显示联系人列表了。
阅读全文