用Android studio制作一个通讯录功能界面,以SQLite方式存储实现通讯录的增删改查。要求用户输入姓名,电话并创建四个按钮分别为添加,查询,修改,删除功能。
时间: 2024-03-13 16:43:05 浏览: 90
好的,我可以提供一些简单的步骤来实现你的要求。
1. 创建一个新的 Android Studio 项目,并在项目中添加一个 SQLite 数据库。可以通过使用 Android Studio 的 SQLite 插件来创建和管理数据库表。
2. 创建一个布局文件,包含输入姓名和电话号码的 EditText 控件,以及用于添加、查询、修改和删除联系人的四个按钮。
3. 在 MainActivity 类中,创建一个内部类用于管理 SQLite 数据库操作,包括添加、查询、修改和删除联系人信息。
```java
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "Contacts.db";
private static final int DATABASE_VERSION = 1;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE contacts (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phone TEXT);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS contacts");
onCreate(db);
}
public void insertContact(String name, String phone) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
db.insert("contacts", null, values);
db.close();
}
public Cursor getAllContacts() {
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM contacts", null);
return cursor;
}
public void updateContact(String name, String phone) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("phone", phone);
db.update("contacts", values, "name=?", new String[] { name });
db.close();
}
public void deleteContact(String name) {
SQLiteDatabase db = getWritableDatabase();
db.delete("contacts", "name=?", new String[] { name });
db.close();
}
}
```
4. 在 MainActivity 类中,实例化 DatabaseHelper 类,并在按钮事件处理程序中调用相应的方法。
```java
public class MainActivity extends AppCompatActivity {
private EditText mNameEditText;
private EditText mPhoneEditText;
private Button mAddButton;
private Button mSearchButton;
private Button mUpdateButton;
private Button mDeleteButton;
private DatabaseHelper mDbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mNameEditText = findViewById(R.id.name_edit_text);
mPhoneEditText = findViewById(R.id.phone_edit_text);
mAddButton = findViewById(R.id.add_button);
mSearchButton = findViewById(R.id.search_button);
mUpdateButton = findViewById(R.id.update_button);
mDeleteButton = findViewById(R.id.delete_button);
mDbHelper = new DatabaseHelper(this);
mAddButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mNameEditText.getText().toString();
String phone = mPhoneEditText.getText().toString();
mDbHelper.insertContact(name, phone);
Toast.makeText(MainActivity.this, "Contact added successfully", Toast.LENGTH_SHORT).show();
}
});
mSearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mNameEditText.getText().toString();
Cursor cursor = mDbHelper.getAllContacts();
while (cursor.moveToNext()) {
if (cursor.getString(cursor.getColumnIndexOrThrow("name")).equals(name)) {
String phone = cursor.getString(cursor.getColumnIndexOrThrow("phone"));
mPhoneEditText.setText(phone);
break;
}
}
cursor.close();
}
});
mUpdateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mNameEditText.getText().toString();
String phone = mPhoneEditText.getText().toString();
mDbHelper.updateContact(name, phone);
Toast.makeText(MainActivity.this, "Contact updated successfully", Toast.LENGTH_SHORT).show();
}
});
mDeleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name = mNameEditText.getText().toString();
mDbHelper.deleteContact(name);
Toast.makeText(MainActivity.this, "Contact deleted successfully", Toast.LENGTH_SHORT).show();
}
});
}
}
```
这样就可以实现一个简单的通讯录功能界面,以 SQLite 方式存储实现通讯录的增删改查。
阅读全文