写一个通过Android Studios实现一个设计一个通讯录,分别保存“姓名”和“电话”信息;显示“添加”、“查询”、“修改”和“删除”四个按钮;生成的.db格式数据库文件,使用SQLite Expert Personal可视化工具展示所保存的数据信息
时间: 2023-11-05 22:56:24 浏览: 116
好的,下面是实现步骤:
1. 首先在 Android Studio 中创建一个新项目,命名为 ContactBook。
2. 在 layout 中创建一个新的布局文件,命名为 activity_main.xml。在该布局文件中添加一个 LinearLayout,并在其中添加四个 Button 分别为“添加”、“查询”、“修改”和“删除”。
3. 在 MainActivity.java 中引入布局文件,并为四个 Button 添加点击事件,具体代码如下:
```
package com.example.contactbook;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private Button btnAdd, btnSearch, btnUpdate, btnDelete;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnAdd = findViewById(R.id.btnAdd);
btnSearch = findViewById(R.id.btnSearch);
btnUpdate = findViewById(R.id.btnUpdate);
btnDelete = findViewById(R.id.btnDelete);
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "添加联系人", Toast.LENGTH_SHORT).show();
}
});
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "查询联系人", Toast.LENGTH_SHORT).show();
}
});
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "修改联系人", Toast.LENGTH_SHORT).show();
}
});
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "删除联系人", Toast.LENGTH_SHORT).show();
}
});
}
}
```
4. 在 ContactBook 中创建一个新的 Java 类,命名为 ContactDBHelper。该类继承自 SQLiteOpenHelper。在该类中定义数据库的名称、版本、表名以及表中的列名。
```
package com.example.contactbook;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class ContactDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "contact.db";
private static final int DATABASE_VERSION = 1;
public static final String TABLE_NAME = "contact";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_PHONE = "phone";
public ContactDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + " ( " +
COLUMN_NAME + " TEXT, " +
COLUMN_PHONE + " TEXT )";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
```
5. 在 MainActivity 中添加对 ContactDBHelper 的引用,并在添加联系人的点击事件中实现向数据库中添加数据。具体代码如下:
```
btnAdd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContactDBHelper dbHelper = new ContactDBHelper(MainActivity.this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ContactDBHelper.COLUMN_NAME, "张三");
values.put(ContactDBHelper.COLUMN_PHONE, "13812345678");
long result = db.insert(ContactDBHelper.TABLE_NAME, null, values);
if (result != -1) {
Toast.makeText(MainActivity.this, "添加联系人成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "添加联系人失败", Toast.LENGTH_SHORT).show();
}
db.close();
}
});
```
6. 在查询联系人的点击事件中实现从数据库中查询数据并显示在 Toast 中。具体代码如下:
```
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContactDBHelper dbHelper = new ContactDBHelper(MainActivity.this);
SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {
ContactDBHelper.COLUMN_NAME,
ContactDBHelper.COLUMN_PHONE
};
Cursor cursor = db.query(
ContactDBHelper.TABLE_NAME,
projection,
null,
null,
null,
null,
null
);
StringBuilder builder = new StringBuilder();
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactDBHelper.COLUMN_NAME));
String phone = cursor.getString(cursor.getColumnIndex(ContactDBHelper.COLUMN_PHONE));
builder.append(name).append(": ").append(phone).append("\n");
}
cursor.close();
db.close();
Toast.makeText(MainActivity.this, builder.toString(), Toast.LENGTH_LONG).show();
}
});
```
7. 在修改联系人的点击事件中实现修改数据库中的数据。具体代码如下:
```
btnUpdate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContactDBHelper dbHelper = new ContactDBHelper(MainActivity.this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ContactDBHelper.COLUMN_PHONE, "15812345678");
String selection = ContactDBHelper.COLUMN_NAME + " = ?";
String[] selectionArgs = { "张三" };
int count = db.update(
ContactDBHelper.TABLE_NAME,
values,
selection,
selectionArgs
);
if (count > 0) {
Toast.makeText(MainActivity.this, "修改联系人成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "修改联系人失败", Toast.LENGTH_SHORT).show();
}
db.close();
}
});
```
8. 在删除联系人的点击事件中实现从数据库中删除数据。具体代码如下:
```
btnDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContactDBHelper dbHelper = new ContactDBHelper(MainActivity.this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
String selection = ContactDBHelper.COLUMN_NAME + " = ?";
String[] selectionArgs = { "张三" };
int count = db.delete(
ContactDBHelper.TABLE_NAME,
selection,
selectionArgs
);
if (count > 0) {
Toast.makeText(MainActivity.this, "删除联系人成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "删除联系人失败", Toast.LENGTH_SHORT).show();
}
db.close();
}
});
```
9. 在 AndroidManifest.xml 中添加对应的权限:
```
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
10. 在项目中添加 SQLite Expert Personal 工具,使用该工具打开生成的 .db 格式数据库文件,展示所保存的数据信息。
以上就是通过 Android Studios 实现一个设计一个通讯录的具体步骤。
阅读全文