用android studio练习的一个通讯录app,其中存储数据用的是sqlite数据库,能够实现联系人信息的增、删、改、查。 并且还能实现打电话功能和发短信功能。
时间: 2023-12-10 17:00:59 浏览: 300
这个通讯录app是一个基于Android Studio开发的应用程序,使用SQLite数据库来存储联系人信息。用户可以在应用中完成联系人信息的增加、删除、修改、查询等操作。当用户需要与联系人进行联系时,该应用还提供了打电话和发送短信的功能。
在应用中,用户可以通过简单的操作,将新的联系人信息添加到通讯录中。当用户需要对已存在的联系人信息进行修改或删除时,也可以轻松地进行操作。通过查询功能,用户可以快速找到需要的联系人信息,提高了使用的便利性。
当用户需要联系某个联系人时,可以直接在应用中选择打电话功能,快速拨打电话。同时,用户也可以在应用中选择发送短信功能,快速向联系人发送短信。
总的来说,这个通讯录app在Android Studio上进行开发,利用SQLite数据库存储联系人信息,实现了包括增、删、改、查等基本功能,同时还提供了打电话和发送短信的功能,为用户提供了方便和实用性。
相关问题
设计一个Android studio app,需要具备以下条件,规划完成SQLite数据库建库、建表(10条记录以上),表中数据的增、删、改、查操作;可扩展完成ListView显示表中内容等。 项目可结合任务3的工作,如可创建通讯录、证券信息、成绩单等自己感兴趣的内容
好的,你需要我为你讲解如何设计一个Android studio app,满足以下要求:
1. 完成SQLite数据库的建库、建表(10条记录以上);
2. 实现表中数据的增、删、改、查等操作;
3. 可扩展完成ListView显示表中内容;
4. 项目可结合任务3的工作,如可创建通讯录、证券信息、成绩单等自己感兴趣的内容。
首先,你需要在Android Studio中创建一个新的项目。在项目中,我们需要先创建一个SQLite数据库,并且在其中创建一张表。
1. 创建SQLite数据库
在Android Studio中,可以使用SQLiteOpenHelper类来帮助我们创建SQLite数据库。你需要创建一个新的类,继承自SQLiteOpenHelper类,并且实现onCreate()和onUpgrade()方法。onCreate()方法用于创建数据库和表,onUpgrade()方法用于升级数据库。
例如,我们创建一个名为MyDatabaseHelper的类:
```java
public class MyDatabaseHelper extends SQLiteOpenHelper {
private static final String DB_NAME = "mydatabase.db"; // 数据库名称
private static final int DB_VERSION = 1; // 数据库版本号
public MyDatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
// 创建表
db.execSQL("CREATE TABLE IF NOT EXISTS student ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "name TEXT,"
+ "age INTEGER,"
+ "score REAL)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 升级数据库
}
}
```
在这个例子中,我们创建了一个名为student的表,包含四个字段:id(主键)、name、age、score。
2. 实现增删改查操作
在MyDatabaseHelper类中,我们需要实现一些方法,用于增加、删除、修改和查询表中的数据。
例如,我们可以添加一个方法来向表中插入一条新的记录:
```java
public void addStudent(String name, int age, double score) {
SQLiteDatabase db = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("age", age);
values.put("score", score);
db.insert("student", null, values);
db.close();
}
```
这个方法创建一个ContentValues对象,并将数据插入到student表中。
我们还可以添加其他方法,例如删除一条记录、修改一条记录、查询所有记录等。
3. 扩展ListView显示表中内容
在Android Studio中,可以使用ListView来显示表中的数据。你需要在布局文件中添加一个ListView控件,并且在代码中实现一个适配器来将数据显示在ListView中。
例如,我们可以创建一个名为MyListAdapter的适配器:
```java
public class MyListAdapter extends BaseAdapter {
private List<Student> mStudentList;
private LayoutInflater mInflater;
public MyListAdapter(Context context, List<Student> studentList) {
mStudentList = studentList;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return mStudentList.size();
}
@Override
public Object getItem(int position) {
return mStudentList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.list_item, null);
holder = new ViewHolder();
holder.nameTextView = (TextView) convertView.findViewById(R.id.name_text_view);
holder.ageTextView = (TextView) convertView.findViewById(R.id.age_text_view);
holder.scoreTextView = (TextView) convertView.findViewById(R.id.score_text_view);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
Student student = mStudentList.get(position);
holder.nameTextView.setText(student.getName());
holder.ageTextView.setText(String.valueOf(student.getAge()));
holder.scoreTextView.setText(String.valueOf(student.getScore()));
return convertView;
}
private class ViewHolder {
TextView nameTextView;
TextView ageTextView;
TextView scoreTextView;
}
}
```
在这个例子中,我们创建了一个名为MyListAdapter的适配器,并且实现了getView()方法来将数据显示在ListView中。
4. 创建自己感兴趣的内容
根据任务的要求,我们可以创建自己感兴趣的内容,例如通讯录、证券信息、成绩单等。
例如,我们可以创建一个名为Contact的类,并且在其中定义一些字段,例如姓名、电话号码、电子邮件等。然后,我们可以创建一个名为ContactsActivity的活动,并且在其中实现增加、删除、修改和查询通讯录中的联系人的功能。
这个例子中,我们可以在MyDatabaseHelper类中添加以下方法,用于创建和查询通讯录表:
```java
public void createContactTable() {
SQLiteDatabase db = getWritableDatabase();
db.execSQL("CREATE TABLE IF NOT EXISTS contact ("
+ "id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "name TEXT,"
+ "phone TEXT,"
+ "email TEXT)");
db.close();
}
public List<Contact> getContactList() {
List<Contact> contactList = new ArrayList<>();
SQLiteDatabase db = getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM contact", null);
if (cursor != null && cursor.getCount() > 0) {
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"));
Contact contact = new Contact(id, name, phone, email);
contactList.add(contact);
}
}
if (cursor != null) {
cursor.close();
}
db.close();
return contactList;
}
```
然后,我们可以在ContactsActivity中使用MyDatabaseHelper类的方法来增加、删除、修改和查询通讯录中的联系人。
例如,我们可以添加以下方法来向通讯录中增加一条新的联系人:
```java
public void addContact(String name, String phone, String email) {
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", name);
values.put("phone", phone);
values.put("email", email);
db.insert("contact", null, values);
db.close();
}
```
这个方法创建一个MyDatabaseHelper对象,并将数据插入到contact表中。
最后,我们可以在ContactsActivity中使用ListView来显示通讯录中的联系人。
例如,我们可以添加以下方法来显示通讯录中的联系人:
```java
private void showContactList() {
MyDatabaseHelper dbHelper = new MyDatabaseHelper(this);
List<Contact> contactList = dbHelper.getContactList();
MyListAdapter adapter = new MyListAdapter(this, contactList);
mListView.setAdapter(adapter);
}
```
这个方法创建一个MyDatabaseHelper对象,并调用getContactList()方法来获取通讯录中的联系人列表。然后,它使用MyListAdapter适配器来将数据显示在ListView中。
做一个简单通讯录数据库app,存储朋友姓名和手机号码,最好使用opensqliteheper工具类。现使用Androidstudio实现上述内容,请给出相应的操作步骤及代码,现所有Androidstudio来实现上述内容,请给出相应的操作步骤及代码
要在Android Studio中使用SQLiteOpenHelper创建一个简单的通讯录应用程序,首先需要遵循以下步骤:
1. **设置环境**:
- 确保已安装Android Studio,并配置好项目结构。
2. **添加依赖**:
在build.gradle(Module)文件中添加对SQLite和SQLiteOpenHelper的依赖:
```groovy
implementation 'androidx.room:room-runtime:2.4.0'
kapt 'androidx.room:room-compiler:2.4.0'
```
3. **创建数据模型**:
创建`Contact.java`文件,表示联系人:
```java
public class Contact {
@NonNull private String name;
@NonNull private String phoneNumber;
// Getters and Setters...
// equals(), hashCode(), toString() 自动生成
}
```
4. **定义Room Entity**:
使用 Room 数据库技术,创建 `ContactDatabase.java`:
```java
import androidx.room.Database;
import androidx.room.RoomDatabase;
@Database(entities = {Contact.class}, version = 1)
abstract class ContactDatabase : RoomDatabase() {
abstract fun contactDao(): ContactDao
companion object {
@Volatile
private var INSTANCE: ContactDatabase? = null
fun getDatabase(context: Context): ContactDatabase {
return INSTANCE ?: synchronized(this) {
val instance = Room.databaseBuilder(
context.applicationContext,
ContactDatabase::class.java, "contacts_database")
.allowMainThreadQueries()
.build()
INSTANCE = instance
instance
}
}
}
}
```
5. **定义 Dao 接口**:
`ContactDao.java` 中定义增删改查操作:
```java
import androidx.room.Dao;
import androidx.room.Insert;
import androidx.room.Query;
import java.util.List;
@Dao
interface ContactDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(Contact contact);
@Query("SELECT * FROM contacts WHERE name LIKE :name")
List<Contact> searchByName(String name);
// ...其他查询方法如delete()、update()
}
```
6. **保存数据**:
在需要的地方(如Activity或Fragment),可以使用 Dao 来插入数据:
```java
ContactDatabase db = ContactDatabase.getDatabase(requireContext());
Contact contact = new Contact("张三", "13800138000");
db.contactDao().insert(contact);
```
7. **检索数据**:
查询联系人列表:
```java
List<Contact> contacts = db.contactDao().searchByName("%李四%");
for (Contact c : contacts) {
Log.d("Contacts", "Name: " + c.name + ", Phone: " + c.phoneNumber);
}
```
8. **注意**:
- 不要在主线程中进行数据库操作,使用 Room 的异步回调或LiveData进行处理。
- 完成后别忘了运行应用检查是否成功创建数据库和读写数据。
**
阅读全文