Android通讯录案例

实战演练——通讯录

  1. 功能描述:通过SQLite实现数据库的增删改查

  2. 技术要点:SQLite的基本操作

  3. 实现步骤:
    ① 创建一个类继承SQLiteOpenHelper
    ② 重写父类构造方法、onCreate()、onUpgrade()
    ③ 增删改查

  4. 效果图
    在这里插入图片描述

  5. 案例代码
    MyHelper.java

package com.example.sqlite;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class MyHelper extends SQLiteOpenHelper {
    public MyHelper(@Nullable Context context) {
        super(context, "test.db", null, 1);
    }

    //当数据库第一次创建的时候执行
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY KEY AUTOINCREMENT ,name VARCHAR(20),phone VARCHAR(20))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

MainActivity.java

package com.example.sqlite;

import androidx.appcompat.app.AppCompatActivity;

import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    private TextView name;
    private TextView phone;
    private Button btnAdd;
    private Button btnDel;
    private Button btnUqd;
    private Button btnSel;
    private String uPhone;
    private String uName;
    private MyHelper myHelper;
    private SQLiteDatabase db;
    private TextView show;
    private ContentValues contentValues;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myHelper = new MyHelper(this);
        init();
    }

    private void init() {
        show = findViewById(R.id.show);
        name = findViewById(R.id.name);
        phone = findViewById(R.id.phone);
        btnAdd = findViewById(R.id.insert);
        btnDel = findViewById(R.id.delete);
        btnUqd = findViewById(R.id.update);
        btnSel = findViewById(R.id.select);
        btnAdd.setOnClickListener(this);
        btnDel.setOnClickListener(this);
        btnUqd.setOnClickListener(this);
        btnSel.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.select:
                db = myHelper.getReadableDatabase();
                Cursor cursor = db.query("information", null, null, null, null, null, null);
                if (cursor.getCount() == 0) {
                    Toast.makeText(this, "没有数据", Toast.LENGTH_LONG).show();
                } else {
                    cursor.moveToFirst();
                    show.setText("Name:" + cursor.getString(1) + "Tel:" + cursor.getString(2));
                }
                while (cursor.moveToNext()) {
                    show.append("\n" + "Name" + cursor.getString(1) + "Tel" + cursor.getString(2));
                }
                cursor.close();
                db.close();
                break;
            case R.id.insert:
                uName = name.getText().toString();
                uPhone = phone.getText().toString();
                db = myHelper.getReadableDatabase();
                contentValues = new ContentValues();
                contentValues.put("name", uName);
                contentValues.put("phone", uPhone);
                db.insert("information", null, contentValues);
                db.close();
                break;
            case R.id.update:
                db = myHelper.getReadableDatabase();
                contentValues = new ContentValues();
                contentValues.put("phone", uPhone = phone.getText().toString());
                db.update("information", contentValues, "name=?", new String[]{name.getText().toString()});
                db.close();
                break;
            case R.id.delete:
                db = myHelper.getReadableDatabase();
                db.delete("information", null, null);
                Toast.makeText(this, "信息已经删除", Toast.LENGTH_LONG).show();
                show.setText("");
                db.close();
                break;
        }
    }
}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="@drawable/background">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            >

            <ImageView
                android:layout_width="160dp"
                android:layout_height="120dp"
                android:layout_marginTop="50dp"
                android:layout_marginLeft="20dp"
                android:src="@drawable/expression"></ImageView>
            <ImageView
                android:layout_width="160dp"
                android:layout_height="120dp"
                android:layout_marginTop="50dp"
                android:layout_marginLeft="20dp"
                android:src="@drawable/text"></ImageView>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp"
            android:paddingHorizontal="20dp"
            >
            <TextView

                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="姓 名 :"
                android:textSize="26sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
            <EditText
                android:id="@+id/name"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:hint="请输入姓名"
                android:textSize="22sp"
                ></EditText>

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp"
            android:paddingHorizontal="20dp"
            >
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="电 话 :"
                android:textSize="26sp"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
            <EditText
                android:id="@+id/phone"
                android:layout_width="0dp"
                android:layout_weight="3"
                android:layout_height="wrap_content"
                android:hint="请输入手机号码"
                android:textSize="22sp"
                ></EditText>

        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginTop="20dp"
            android:paddingHorizontal="20dp"
            >
            <Button
                android:id="@+id/insert"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="增加"
                android:textSize="26sp"
                ></Button>
            <Button
                android:id="@+id/select"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="查询"
                android:textSize="26sp"
                ></Button>
            <Button
                android:id="@+id/update"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="修改"
                android:textSize="26sp"
                ></Button>
            <Button
                android:id="@+id/delete"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:text="删除"
                android:textSize="26sp"
                ></Button>
        </LinearLayout>
        <TextView
            android:id="@+id/show"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="18sp"
            android:background="#80ffffff"
            android:layout_marginHorizontal="20dp"

            ></TextView>
    </LinearLayout>
</RelativeLayout>
发布了3 篇原创文章 · 获赞 4 · 访问量 146

猜你喜欢

转载自blog.csdn.net/weixin_45076969/article/details/104909293