IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android--数据库存储--实验 -> 正文阅读

[移动开发]Android--数据库存储--实验

实验题目

1.创建一个Android项目,项目名称为“shiyan0801_专业_×××(学生姓名)”,要求:

(1)创建2个Activity,名称分别为MainActivity、ManageActivity,对应的布局文件名称分别为activity_main.xml、activity_manage。

(2)界面构成:

①主界面activity_main:实现用户登录,包括以下控件:

a)2个文本框,分别用来显示“管理员”、“密码”;

b)2个编辑框,分别用来接收用户输入的用户名、密码;

c)1个按钮,文本显示为“登录”。

②activity_manage:实现图书信息设置,包括以下控件:

a)5个文本框用于显示提示信息“图书名称:”、“图书价格”、“图书版次”“图书类别”、“出版社”;

b)2个编辑框分别用于接收图书的名称和价格;

c)4个单选按钮用于版次选择(1版、2版、3版、3版以上);

d)n个复选框用于类别选择(教育、计算机、小说、科技、励志、文学等);

e)1个下拉列表用于出版社选择(人民邮电出版社、科学出版社、高等教育出版社、清华大学出版社,其他等);

f)4个普通按钮,文本分别显示为“添加”、“修改”、“删除”、“查询”;

e)1个ListView控件。

(3)程序功能:

①点击MainActivity中的“登录”按钮,若管理员和密码分别为学生的姓名和学号,则弹出提示对话框,显示“***登录成功!”,然后跳转到ManageActivity,否则,弹出Toast提示“管理员或密码错误,请重新输入”。

②ManageActivity中的操作:

a)单击“添加”按钮,将用户输入和选择的各项信息写入数据库;

b)单击“修改”按钮,将_id为3的记录的价格改为100,出版社改为“清华大学出版社”;

c)单击“删除”按钮,将所有版次为1版的记录删除;

d)单击“查询”按钮,将出版社为“人民邮电出版社”的记录显示在ListView控件中。

项目目录

页面布局

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    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:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="管理员:" />
        <EditText
            android:id="@+id/et_name"
            android:layout_width="200dp"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="密码:" />
        <EditText
            android:id="@+id/et_pwd"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:inputType="textPassword"/>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="登录"
            />
    </LinearLayout>



</LinearLayout>

activity_manage.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="图书名称:" />
        <EditText
            android:id="@+id/et_name"
            android:layout_width="200dp"
            android:hint="请输入图书名称"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="图书价格:"/>
        <EditText
            android:id="@+id/et_price"
            android:layout_width="200dp"
            android:hint="请输入图书价格"
            android:layout_height="wrap_content" />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="图书版次:"/>

        <RadioGroup
            android:id="@+id/rg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <RadioButton
                android:id="@+id/rb_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="1版"/>
            <RadioButton
                android:id="@+id/rb_2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="2版"/>
            <RadioButton
                android:id="@+id/rb_3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3版"/>
            <RadioButton
                android:id="@+id/rb_4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="3版以上"/>
        </RadioGroup>
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="图书类别:"/>
        <GridLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:columnCount="3"
            android:id="@+id/g1_sort"
            >
            <CheckBox
                android:id="@+id/cb1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="教育"
                />
            <CheckBox
                android:id="@+id/cb2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="计算机"
                />
            <CheckBox
                android:id="@+id/cb3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="小说"
                />
            <CheckBox
                android:id="@+id/cb4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="科技"
                />
            <CheckBox
                android:id="@+id/cb5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="励志"
                />
            <CheckBox
                android:id="@+id/cb6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="文学"
                />
        </GridLayout>
    </LinearLayout>

    <Spinner
        android:id="@+id/sp_bkcbs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/chu">
    </Spinner>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center">
        <Button
            android:id="@+id/bt_insert"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:onClick="clickSave"
            android:text="插入"/>

        <Button
            android:id="@+id/bt_update"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="修改"/>
        <Button
            android:id="@+id/bt_delete"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="删除"/>
        <Button
            android:id="@+id/bt_query"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="查询"/>
    </LinearLayout>

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="5dp"
        android:divider="#d9d9d9"
        android:dividerHeight="1dp"/>

</LinearLayout>

list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="8dp"
        android:text="List布局"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/tv_price"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="8dp"
        android:text="List布局"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/tv_banci"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="8dp"
        android:text="List布局"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/tv_leibie"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="8dp"
        android:text="List布局"
        android:textSize="18sp" />
    <TextView
        android:id="@+id/tv_cbs"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:layout_marginTop="8dp"
        android:text="List布局"
        android:textSize="18sp" />
</LinearLayout>

array.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="chu">
        <item>人民邮电出版社</item>
        <item>科学出版社</item>
        <item>高等教育出版社</item>
        <item>清华大学出版社</item>
        <item>其它</item>
    </string-array>

</resources>

逻辑实现

MainActivity

package com.star.shiyan0801;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    Button login;
    EditText uname,upwd;
    String sname,spwd;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        login = findViewById(R.id.bt_login);

        login.setOnClickListener(new ButtonListener());

    }

    class ButtonListener implements View.OnClickListener{

        @Override
        public void onClick(View view) {
            uname = findViewById(R.id.et_name);
            upwd = findViewById(R.id.et_pwd);
            sname = uname.getText().toString();
            spwd = upwd.getText().toString();

            if (sname.equals("star") && spwd.equals("star")){
                Toast.makeText(MainActivity.this,sname+"登录成功!",Toast.LENGTH_LONG);
                Intent intent = new Intent(MainActivity.this,ManageActivity.class);
                startActivity(intent);
            }else{
                Toast.makeText(MainActivity.this,"管理员或密码错误,请重新输入",Toast.LENGTH_LONG);
                uname.setText("");
                upwd.setText("");
            }
        }
    }
}

ManageActivity

package com.star.shiyan0801;

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.CheckBox;
import android.widget.EditText;
import android.widget.GridLayout;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class ManageActivity extends AppCompatActivity {


    Spinner sp;
    EditText etName,etPrice;
    RadioGroup rg;
    GridLayout gl;
    CheckBox cb1,cb2,cb3,cb4,cb5,cb6;
    CheckBox cb[]=new CheckBox[6];
    ListView lvshow;
    //
    MyHelper myHelper;
    SQLiteDatabase sdb;

    Button bt_insert,bt_update,bt_delete,bt_query;
    String sbname,sbkbanci,sbkclass,sbkcbs;
    double price;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_manage);

        init();
        bt_query.setOnClickListener(new Click());
        bt_insert.setOnClickListener(new Click());
        bt_delete.setOnClickListener(new Click());
        bt_update.setOnClickListener(new Click());

        //创建帮助类对象
        myHelper = new MyHelper(this,"BookStore.db",null,3);
        sdb = myHelper.getWritableDatabase();

        Toast.makeText(ManageActivity.this, "数据库创建成功", Toast.LENGTH_SHORT).show();

    }

    class Click implements View.OnClickListener {
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.bt_insert:
                    getdata();
                    Toast.makeText(ManageActivity.this, sbname, Toast.LENGTH_SHORT).show();

                    sdb.execSQL("insert into Book(bname,bprice,bbanci,bleibie,bcbs) " +
                            "values('"+sbname+"',"+price+",'"+sbkbanci+"','"+sbkclass+"','"+sbkcbs+"')");
                    break;
                case R.id.bt_update:
                    sdb.execSQL("update Book set bprice=100,bcbs='清华大学出版社' where _id=3");
                    break ;
                case R.id.bt_delete:
                    sdb.execSQL("delete from Book where bbanci='1版'");
                    break;
                case R.id.bt_query:
                    Cursor c =sdb.rawQuery("select * from Book where bcbs=?",new String[]{"人民邮电出版社"});
                    SimpleCursorAdapter ad=new SimpleCursorAdapter(

                                    ManageActivity.this,
                            R.layout.list_item,
                            c,
                            new String[]{"bname","bprice","bbanci","bleibie","bcbs"},
                            new int[]{R.id.tv_name,R.id.tv_price,R.id.tv_banci,
                            R.id.tv_leibie,R.id.tv_cbs}
                            );
                    lvshow.setAdapter(ad);
                    break;
            }
        }
    }


    private void init(){
        bt_insert = findViewById(R.id.bt_insert);
        bt_update = findViewById(R.id.bt_update);
        bt_delete = findViewById(R.id.bt_delete);
        bt_query = findViewById(R.id.bt_query);
        sp = findViewById(R.id.sp_bkcbs);
        etName = findViewById(R.id.et_name);
        etPrice = findViewById(R.id.et_price);
        rg = findViewById(R.id.rg);
        gl = findViewById(R.id.g1_sort);
        lvshow = findViewById(R.id.lv);

        cb[0] = (CheckBox) findViewById(R.id.cb1);
        cb[1] = (CheckBox) findViewById(R.id.cb2);
        cb[2] = (CheckBox) findViewById(R.id.cb3);
        cb[3] = (CheckBox) findViewById(R.id.cb4);
        cb[4] = (CheckBox) findViewById(R.id.cb5);
        cb[5] = (CheckBox) findViewById(R.id.cb6);


    }

    private void getdata(){
        sbname = etName.getText().toString();
        price = Double.valueOf(etPrice.getText().toString()) ;
        sbkbanci = "";
        sbkclass="";
        sbkcbs="";

        for(int i=0;i<rg.getChildCount();i++){
            RadioButton rb = (RadioButton) rg.getChildAt(i);
            if (rb.isChecked()){
                sbkbanci = rb.getText().toString();
                break;
            }
        }
        for (int i=0; i< cb.length; i++){
            if (cb[i].isChecked()){
                sbkclass+=cb[i].getText().toString()+"  ";
            }
        }
        sbkcbs = sp.getSelectedItem().toString();
    }
}

MyHelper

package com.star.shiyan0801;

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

import androidx.annotation.Nullable;

public class MyHelper extends SQLiteOpenHelper {

    //字符串常量定义
    public static final String CREATE_TABLE="create table Book("+
            "_id integer primary key autoincrement,"+
            "bname text,"+
            "bprice real,"+
            "bbanci varchar(10),"+
            "bleibie varchar(20),"+
            "bcbs varchar(50))";

    private Context mContext;

    public MyHelper(Context context,  String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);

        mContext = context;

    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //调用SQLiteDatabase中的execSQL()执行建表语句。
        db.execSQL(CREATE_TABLE);
        //创建成功
//        Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i1) {
        db.execSQL("drop table if exists Book");
        onCreate(db);
    }
}

运行效果

登录页面

登录功能:

填写信息界面

点击插入

将填入的信息插入到数据库中

导出数据库,查看数据库数据

点击修改后,再查看数据

点击删除,再查看数据

点击查询

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:51:06  更:2022-05-09 12:52:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:53:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码