利用List View控件设计一个通讯录,要求每条信息包含头像、姓名和电话号码三部分内容。android软件功能
时间: 2024-02-05 20:13:08 浏览: 93
基于android的通讯录软件
设计一个通讯录应用的基本步骤如下:
1. 创建一个ListView控件,用于显示联系人信息。
2. 设计每个联系人信息的布局,包括头像、姓名和电话号码三部分内容。
3. 创建一个联系人数据类,包含头像、姓名和电话号码三个属性。
4. 创建一个适配器类,用于将联系人数据与ListView进行绑定。
5. 在Activity中加载适配器,并将ListView与适配器进行绑定。
以下是一个简单的示例代码:
1. 创建ListView控件
```
<ListView
android:id="@+id/list_view_contacts"
android:layout_width="match_parent"
android:layout_height="match_parent" />
```
2. 设计联系人信息布局文件
创建一个名为list_item_contact.xml的布局文件,内容如下:
```
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="16dp">
<ImageView
android:id="@+id/image_view_avatar"
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/avatar_placeholder" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginStart="16dp">
<TextView
android:id="@+id/text_view_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Name"
android:textSize="16sp"
android:textStyle="bold" />
<TextView
android:id="@+id/text_view_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Phone Number"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
```
3. 创建联系人数据类
创建一个名为Contact的数据类,包含头像、姓名和电话号码三个属性:
```
public class Contact {
private int avatar;
private String name;
private String phone;
public Contact(int avatar, String name, String phone) {
this.avatar = avatar;
this.name = name;
this.phone = phone;
}
public int getAvatar() {
return avatar;
}
public void setAvatar(int avatar) {
this.avatar = avatar;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
```
4. 创建适配器类
创建一个名为ContactsAdapter的适配器类,用于将联系人数据与ListView进行绑定:
```
public class ContactsAdapter extends ArrayAdapter<Contact> {
private Context context;
private int resource;
public ContactsAdapter(Context context, int resource, List<Contact> objects) {
super(context, resource, objects);
this.context = context;
this.resource = resource;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = LayoutInflater.from(context);
view = inflater.inflate(resource, null);
}
Contact contact = getItem(position);
ImageView avatarView = view.findViewById(R.id.image_view_avatar);
TextView nameView = view.findViewById(R.id.text_view_name);
TextView phoneView = view.findViewById(R.id.text_view_phone);
avatarView.setImageResource(contact.getAvatar());
nameView.setText(contact.getName());
phoneView.setText(contact.getPhone());
return view;
}
}
```
5. 加载适配器
在Activity中加载适配器,并将ListView与适配器进行绑定:
```
public class MainActivity extends AppCompatActivity {
private ListView listViewContacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listViewContacts = findViewById(R.id.list_view_contacts);
List<Contact> contacts = new ArrayList<>();
contacts.add(new Contact(R.drawable.avatar1, "Alice", "123456789"));
contacts.add(new Contact(R.drawable.avatar2, "Bob", "987654321"));
ContactsAdapter adapter = new ContactsAdapter(this, R.layout.list_item_contact, contacts);
listViewContacts.setAdapter(adapter);
}
}
```
完成上述步骤后,运行应用即可看到通讯录中显示了两个联系人的信息,包含头像、姓名和电话号码。
阅读全文