android studio通讯录
时间: 2023-12-21 22:32:09 浏览: 104
Android Studio 实验四:手机通讯录(ListView的应用)
Android Studio是一款用于开发Android应用程序的集成开发环境(IDE)。通讯录是一个常见的功能,可以用来存储和管理联系人信息。在Android Studio中实现通讯录功能,可以通过以下步骤进行:
1. 创建一个新的Android项目,并设置项目名称和其他相关配置。
2. 在布局文件中设计通讯录界面,可以使用RecyclerView来展示联系人列表,并使用适配器来填充数据。
3. 创建一个联系人类,用于存储联系人的姓名、电话号码等信息。
4. 创建一个数据库帮助类,用于创建和管理联系人数据库。可以使用SQLite数据库来存储联系人信息。
5. 在MainActivity中,初始化数据库帮助类,并实现添加、删除、修改和查询联系人的功能。
6. 在适配器中,将联系人数据绑定到RecyclerView上,并实现点击事件等功能。
以下是一个简单的示例代码,演示了如何在Android Studio中实现通讯录功能:
```java
// 联系人类
public class Contact {
private String name;
private String phoneNumber;
public Contact(String name, String phoneNumber) {
this.name = name;
this.phoneNumber = phoneNumber;
}
// 省略getter和setter方法
}
// 数据库帮助类
public class DBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "contacts.db";
private static final int DATABASE_VERSION = 1;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTableQuery = "CREATE TABLE contacts (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, phoneNumber TEXT)";
db.execSQL(createTableQuery);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String dropTableQuery = "DROP TABLE IF EXISTS contacts";
db.execSQL(dropTableQuery);
onCreate(db);
}
public void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", contact.getName());
values.put("phoneNumber", contact.getPhoneNumber());
db.insert("contacts", null, values);
db.close();
}
public void deleteContact(int id) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete("contacts", "id = ?", new String[]{String.valueOf(id)});
db.close();
}
public void updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", contact.getName());
values.put("phoneNumber", contact.getPhoneNumber());
db.update("contacts", values, "id = ?", new String[]{String.valueOf(contact.getId())});
db.close();
}
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<>();
String selectQuery = "SELECT * FROM contacts";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
int id = cursor.getInt(cursor.getColumnIndex("id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String phoneNumber = cursor.getString(cursor.getColumnIndex("phoneNumber"));
Contact contact = new Contact(id, name, phoneNumber);
contactList.add(contact);
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return contactList;
}
}
// MainActivity中的部分代码
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private ContactAdapter contactAdapter;
private List<Contact> contactList;
private DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = findViewById(R.id.recyclerView);
contactList = new ArrayList<>();
dbHelper = new DBHelper(this);
// 初始化联系人列表
contactList = dbHelper.getAllContacts();
// 设置RecyclerView的布局管理器和适配器
recyclerView.setLayoutManager(new LinearLayoutManager(this));
contactAdapter = new ContactAdapter(contactList);
recyclerView.setAdapter(contactAdapter);
}
public void addContact(Contact contact) {
dbHelper.addContact(contact);
contactList.add(contact);
contactAdapter.notifyDataSetChanged();
}
public void deleteContact(int position) {
Contact contact = contactList.get(position);
dbHelper.deleteContact(contact.getId());
contactList.remove(position);
contactAdapter.notifyDataSetChanged();
}
public void updateContact(int position, Contact contact) {
dbHelper.updateContact(contact);
contactList.set(position, contact);
contactAdapter.notifyDataSetChanged();
}
// 其他功能的实现,如查询联系人等
}
```
请注意,上述代码只是一个简单的示例,实际的实现可能会更复杂。你可以根据自己的需求进行修改和扩展。
阅读全文