做一个android软件实现一个基于SQLite数据库的通讯录。该通讯录可以实现基本的添加记录、修改记录、删除记录和查询记录功能。
时间: 2024-05-22 10:15:11 浏览: 64
好的,这个问题我可以回答。您可以使用Android系统内置的SQLite数据库来实现通讯录的添加、修改、删除和查询功能。可以使用一些Android开发框架,例如Room,来管理SQLite操作。您可以利用RecyclerView来显示通讯录的记录。同时,建议您学习一些Android UI设计的知识,让您的通讯录更加美观和易于使用。
相关问题
android studio 用sqlite数据库写一个增删改查简单的通讯录
好的,以下是一个简单的通讯录的 SQLite 数据库增删改查的示例代码:
1. 创建 SQLiteOpenHelper 子类
```java
public class ContactsDatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "contacts.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_NAME = "contacts";
private static final String ID = "_id";
private static final String NAME = "name";
private static final String PHONE = "phone";
private static final String EMAIL = "email";
public ContactsDatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE " + TABLE_NAME + " (" +
ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
NAME + " TEXT, " +
PHONE + " TEXT, " +
EMAIL + " TEXT)";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
```
2. 在 Activity 中操作数据库
```java
public class MainActivity extends AppCompatActivity {
private ContactsDatabaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dbHelper = new ContactsDatabaseHelper(this);
// 插入数据
insertData("Alice", "123456789", "alice@example.com");
insertData("Bob", "987654321", "bob@example.com");
// 查询数据
List<Contact> contacts = queryData();
for (Contact contact : contacts) {
Log.d("MainActivity", "id: " + contact.getId() +
", name: " + contact.getName() +
", phone: " + contact.getPhone() +
", email: " + contact.getEmail());
}
// 更新数据
updateData(1, "New Alice", "111111111", "new_alice@example.com");
// 删除数据
deleteData(2);
// 查询数据
contacts = queryData();
for (Contact contact : contacts) {
Log.d("MainActivity", "id: " + contact.getId() +
", name: " + contact.getName() +
", phone: " + contact.getPhone() +
", email: " + contact.getEmail());
}
}
private void insertData(String name, String phone, String email) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
values.put("email", email);
db.insert("contacts", null, values);
db.close();
}
private List<Contact> queryData() {
List<Contact> contacts = new ArrayList<>();
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query("contacts", null, null, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phone = cursor.getString(cursor.getColumnIndex("phone"));
String email = cursor.getString(cursor.getColumnIndex("email"));
contacts.add(new Contact(id, name, phone, email));
}
cursor.close();
db.close();
return contacts;
}
private void updateData(int id, String name, String phone, String email) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
values.put("email", email);
db.update("contacts", values, "_id=?", new String[]{String.valueOf(id)});
db.close();
}
private void deleteData(int id) {
SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("contacts", "_id=?", new String[]{String.valueOf(id)});
db.close();
}
}
```
3. Contact 类
```java
public class Contact {
private int id;
private String name;
private String phone;
private String email;
public Contact(int id, String name, String phone, String email) {
this.id = id;
this.name = name;
this.phone = phone;
this.email = email;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getPhone() {
return phone;
}
public String getEmail() {
return email;
}
}
```
这样,一个简单的通讯录的 SQLite 数据库增删改查就完成了。
android studio做一个简易通讯录,有新增,查询,查看,删除,清空,修改功能
好的,下面是一个简单的通讯录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中,完成界面和逻辑的交互即可。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)