利用list view控件设计一个通讯录
时间: 2023-09-25 13:11:22 浏览: 175
好的,你可以使用ListView控件来设计一个通讯录。下面是一个简单的示例代码,你可以根据自己的需要进行修改和扩展。
```java
public class MainActivity extends AppCompatActivity {
private ListView listView;
private ArrayList<Contact> contacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
// 初始化通讯录数据
initContacts();
// 创建通讯录适配器
ContactAdapter adapter = new ContactAdapter(this, contacts);
// 设置适配器
listView.setAdapter(adapter);
}
// 初始化通讯录数据
private void initContacts() {
contacts = new ArrayList<>();
contacts.add(new Contact("张三", "123456789"));
contacts.add(new Contact("李四", "987654321"));
contacts.add(new Contact("王五", "456789123"));
// ... 这里可以继续添加联系人数据
}
// 自定义联系人类
private static class Contact {
private String name; // 姓名
private String phone; // 电话号码
public Contact(String name, String phone) {
this.name = name;
this.phone = phone;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
}
// 自定义通讯录适配器
private static class ContactAdapter extends BaseAdapter {
private Context context;
private ArrayList<Contact> contacts;
public ContactAdapter(Context context, ArrayList<Contact> contacts) {
this.context = context;
this.contacts = contacts;
}
@Override
public int getCount() {
return contacts.size();
}
@Override
public Contact getItem(int position) {
return contacts.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view;
ViewHolder holder;
if (convertView == null) {
// 创建新的视图
view = LayoutInflater.from(context).inflate(R.layout.contact_item, parent, false);
holder = new ViewHolder();
holder.nameTextView = view.findViewById(R.id.nameTextView);
holder.phoneTextView = view.findViewById(R.id.phoneTextView);
view.setTag(holder);
} else {
// 复用已有视图
view = convertView;
holder = (ViewHolder) view.getTag();
}
// 获取当前位置的联系人对象
Contact contact = getItem(position);
// 设置姓名和电话号码
holder.nameTextView.setText(contact.getName());
holder.phoneTextView.setText(contact.getPhone());
return view;
}
// ViewHolder类,用于存储视图控件对象
private static class ViewHolder {
TextView nameTextView;
TextView phoneTextView;
}
}
}
```
在代码中,我们创建了一个名为Contact的自定义类来表示每个联系人,包含姓名和电话号码两个属性。然后我们又创建了一个名为ContactAdapter的自定义适配器类,用于将联系人数据与ListView控件进行关联,并在视图上显示出来。最后在Activity中初始化通讯录数据,并将适配器设置给ListView控件即可。
注意:这只是一个简单的示例,实际使用中可能需要添加更多的功能和优化,如添加搜索、编辑和删除等操作。
阅读全文