Android Studio通讯录
简介
在现代社会中,手机已经成为人们必不可少的一部分。为了方便管理和查找联系人,通讯录应用应运而生。本文将介绍如何使用Android Studio开发一个简单的通讯录应用,包括联系人的添加、编辑、删除和查找功能。
准备工作
在开始之前,我们需要准备以下工具和环境:
- Android Studio:用于开发Android应用的集成开发环境。
- Java开发环境:用于编写Java代码。
- Android设备或模拟器:用于运行和测试应用。
创建Android项目
首先,我们需要在Android Studio中创建一个新的Android项目。按照以下步骤进行操作:
- 打开Android Studio,点击“Start a new Android Studio project”(开始一个新的Android项目)。
- 输入应用名称和项目位置,然后点击“Next”(下一步)。
- 选择目标设备和最低支持的Android版本,然后点击“Next”。
- 选择一个空的Activity模板,然后点击“Next”。
- 输入Activity名称,然后点击“Finish”(完成)。
完成上述步骤后,Android Studio将为我们生成一个基本的项目结构。
布局设计
接下来,我们需要设计应用的布局。在res/layout目录下,找到activity_main.xml文件,将其打开并进行编辑。可以使用以下代码作为布局的基础:
<LinearLayout xmlns:android="
xmlns:tools="
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<EditText
android:id="@+id/edit_text_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name" />
<EditText
android:id="@+id/edit_text_phone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Phone" />
<Button
android:id="@+id/button_add"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Add Contact" />
<ListView
android:id="@+id/list_view_contacts"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
上述布局包含了两个EditText用于输入联系人的姓名和电话号码,一个Button用于添加联系人,以及一个ListView用于展示联系人列表。
数据存储
为了存储联系人的信息,我们可以使用SQLite数据库。在Android中,使用SQLite数据库非常方便。创建一个Contact类来表示联系人的信息,包括姓名和电话号码:
public class Contact {
private int id;
private String name;
private String phone;
public Contact() {
}
public Contact(String name, String phone) {
this.name = name;
this.phone = phone;
}
// 省略getter和setter方法
}
接下来,我们需要创建一个数据库帮助类来管理数据库的创建和升级。创建一个ContactDatabaseHelper类,继承自SQLiteOpenHelper,并实现以下方法:
public class ContactDatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "contacts.db";
private static final String TABLE_CONTACTS = "contacts";
private static final String COLUMN_ID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_PHONE = "phone";
// 构造方法
public ContactDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// 创建数据库表
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ COLUMN_ID + " INTEGER PRIMARY KEY," + COLUMN_NAME + " TEXT,"
+ COLUMN_PHONE + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
// 升级数据库
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
onCreate(db);
}
// 添加联系人
public void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, contact.getName());
values