android studio做一个简易通讯录,有新增,查询,查看,删除,清空,修改功能
时间: 2024-05-15 12:14:04 浏览: 138
好的,下面是一个简单的通讯录App的实现思路和代码示例:
1. 首先在界面上布局好所需的控件,比如EditText、Button、ListView等。
2. 创建一个联系人类,用于存储每个联系人的信息,包含姓名、电话、邮箱等字段,可以使用JavaBean的方式实现。
3. 创建一个数据源类,用于管理联系人列表,包含新增、查询、删除、清空、修改等操作。可以使用SQLite数据库来存储联系人信息,也可以使用SharedPreferences或文件等方式实现。
4. 在界面上的“新增”按钮点击事件中,获取用户输入的联系人信息,将其保存到数据源中,并更新ListView显示。
5. 在界面上的“查询”按钮点击事件中,根据用户输入的查询条件,在数据源中查找符合条件的联系人信息,并更新ListView显示。
6. 在ListView的每个Item上,设置监听器,当用户点击某个联系人时,跳转到详情页面,显示该联系人的详细信息。
7. 在详情页面中,用户可以进行删除、修改等操作,对应的方法在数据源类中实现。
8. 在界面上的“清空”按钮点击事件中,清空数据源中所有联系人信息,并更新ListView显示。
下面是一个简单的联系人类的实现:
```java
public class Contact {
private String name;
private String phone;
private String email;
public Contact(String name, String phone, String email) {
this.name = name;
this.phone = phone;
this.email = email;
}
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
```
下面是一个简单的数据源类的实现:
```java
public class ContactDataSource {
private SQLiteDatabase database;
public ContactDataSource(Context context) {
ContactDbHelper dbHelper = new ContactDbHelper(context);
database = dbHelper.getWritableDatabase();
}
public void addContact(Contact contact) {
ContentValues values = new ContentValues();
values.put(ContactContract.ContactEntry.COLUMN_NAME, contact.getName());
values.put(ContactContract.ContactEntry.COLUMN_PHONE, contact.getPhone());
values.put(ContactContract.ContactEntry.COLUMN_EMAIL, contact.getEmail());
database.insert(ContactContract.ContactEntry.TABLE_NAME, null, values);
}
public List<Contact> getContacts(String query) {
List<Contact> contacts = new ArrayList<>();
String[] projection = {
ContactContract.ContactEntry._ID,
ContactContract.ContactEntry.COLUMN_NAME,
ContactContract.ContactEntry.COLUMN_PHONE,
ContactContract.ContactEntry.COLUMN_EMAIL
};
String selection = ContactContract.ContactEntry.COLUMN_NAME + " LIKE ?";
String[] selectionArgs = {"%" + query + "%"};
Cursor cursor = database.query(
ContactContract.ContactEntry.TABLE_NAME,
projection,
selection,
selectionArgs,
null,
null,
null
);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactContract.ContactEntry.COLUMN_NAME));
String phone = cursor.getString(cursor.getColumnIndexOrThrow(ContactContract.ContactEntry.COLUMN_PHONE));
String email = cursor.getString(cursor.getColumnIndexOrThrow(ContactContract.ContactEntry.COLUMN_EMAIL));
Contact contact = new Contact(name, phone, email);
contacts.add(contact);
}
cursor.close();
return contacts;
}
public void deleteContact(String name) {
String selection = ContactContract.ContactEntry.COLUMN_NAME + " LIKE ?";
String[] selectionArgs = {name};
database.delete(ContactContract.ContactEntry.TABLE_NAME, selection, selectionArgs);
}
public void updateContact(Contact contact) {
ContentValues values = new ContentValues();
values.put(ContactContract.ContactEntry.COLUMN_NAME, contact.getName());
values.put(ContactContract.ContactEntry.COLUMN_PHONE, contact.getPhone());
values.put(ContactContract.ContactEntry.COLUMN_EMAIL, contact.getEmail());
String selection = ContactContract.ContactEntry.COLUMN_NAME + " LIKE ?";
String[] selectionArgs = {contact.getName()};
database.update(ContactContract.ContactEntry.TABLE_NAME, values, selection, selectionArgs);
}
public void clearContacts() {
database.delete(ContactContract.ContactEntry.TABLE_NAME, null, null);
}
}
```
上面的代码中,ContactDbHelper是一个用于管理数据库的帮助类,ContactContract是一个契约类,用于定义表结构和列名。具体实现可以参考Android官方文档。
最后,将上面的代码整合到Activity中,完成界面和逻辑的交互即可。
阅读全文