用android编写一个通讯录的代码
时间: 2023-09-10 10:15:32 浏览: 148
一个android的通讯录
5星 · 资源好评率100%
好的,以下是一个简单的 Android 通讯录应用程序的代码示例:
1. 首先,创建一个布局文件 `activity_main.xml`,用于显示通讯录列表和添加联系人按钮。
```xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- 通讯录列表 -->
<ListView
android:id="@+id/contact_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/add_contact_button"
android:dividerHeight="1dp" />
<!-- 添加联系人按钮 -->
<Button
android:id="@+id/add_contact_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@android:color/holo_blue_dark"
android:textColor="@android:color/white"
android:text="Add Contact" />
</RelativeLayout>
```
2. 接下来,创建一个自定义布局文件 `list_item_contact.xml`,用于在通讯录列表中显示联系人的信息。
```xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="16dp">
<TextView
android:id="@+id/contact_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:id="@+id/contact_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="14sp" />
</LinearLayout>
```
3. 创建一个 `Contact` 类,用于存储联系人的信息。
```java
public 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;
}
public void setName(String name) {
this.name = name;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
```
4. 创建一个自定义适配器 `ContactAdapter`,用于将联系人信息显示在通讯录列表中。
```java
public class ContactAdapter extends ArrayAdapter<Contact> {
private Context context;
private int resource;
public ContactAdapter(Context context, int resource, List<Contact> contacts) {
super(context, resource, contacts);
this.context = context;
this.resource = resource;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(resource, parent, false);
}
Contact contact = getItem(position);
TextView nameText = convertView.findViewById(R.id.contact_name);
TextView phoneText = convertView.findViewById(R.id.contact_phone);
nameText.setText(contact.getName());
phoneText.setText(contact.getPhone());
return convertView;
}
}
```
5. 最后,在 `MainActivity` 类中实现通讯录的功能,包括添加联系人和显示联系人列表。
```java
public class MainActivity extends AppCompatActivity {
private List<Contact> contacts = new ArrayList<>();
private ContactAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化适配器和列表视图
adapter = new ContactAdapter(this, R.layout.list_item_contact, contacts);
ListView contactList = findViewById(R.id.contact_list);
contactList.setAdapter(adapter);
// 添加联系人按钮的点击事件
Button addContactButton = findViewById(R.id.add_contact_button);
addContactButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showAddContactDialog();
}
});
}
private void showAddContactDialog() {
// 创建添加联系人的对话框
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Add Contact");
// 填充对话框的布局
View view = LayoutInflater.from(this).inflate(R.layout.dialog_add_contact, null);
builder.setView(view);
// 获取输入框的引用
final EditText nameEditText = view.findViewById(R.id.contact_name_edittext);
final EditText phoneEditText = view.findViewById(R.id.contact_phone_edittext);
// 设置对话框的按钮
builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 获取输入框的文本
String name = nameEditText.getText().toString();
String phone = phoneEditText.getText().toString();
// 创建 Contact 对象并添加到列表中
Contact contact = new Contact(name, phone);
contacts.add(contact);
// 更新列表视图
adapter.notifyDataSetChanged();
}
});
builder.setNegativeButton("Cancel", null);
// 显示对话框
builder.show();
}
}
```
以上是一个简单的 Android 通讯录应用程序的代码示例,可以根据自己的需求进行修改和扩展。
阅读全文