Android Studio通讯录

简介

在现代社会中,手机已经成为人们必不可少的一部分。为了方便管理和查找联系人,通讯录应用应运而生。本文将介绍如何使用Android Studio开发一个简单的通讯录应用,包括联系人的添加、编辑、删除和查找功能。

准备工作

在开始之前,我们需要准备以下工具和环境:

  • Android Studio:用于开发Android应用的集成开发环境。
  • Java开发环境:用于编写Java代码。
  • Android设备或模拟器:用于运行和测试应用。

创建Android项目

首先,我们需要在Android Studio中创建一个新的Android项目。按照以下步骤进行操作:

  1. 打开Android Studio,点击“Start a new Android Studio project”(开始一个新的Android项目)。
  2. 输入应用名称和项目位置,然后点击“Next”(下一步)。
  3. 选择目标设备和最低支持的Android版本,然后点击“Next”。
  4. 选择一个空的Activity模板,然后点击“Next”。
  5. 输入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