移动软件开发 实验六 数据存储和访问

本文档介绍了如何使用sqlite3工具和Android代码创建SQLite数据库,并实现学生信息管理应用。应用包含学生姓名、班级和学号的数据存储,支持数据的添加、删除和更新。通过ListView展示数据,主要涉及的文件有MainActivity.java、DBAdapter.java、Student.java以及相关的XML布局文件。
摘要由CSDN通过智能技术生成

分别使用sqlite3工具和Android代码的方式建立SQLite数据库。在完成建立数据库的工作后,编程实现基本的数据库操作功能,包括数据的添加、删除和更新。

  1. 创建一个学生管理的应用,基本信息包含学生姓名,班级,学号。采用数据库存储这些信息。
  2. 应用应该至少包含信息录入和删除功能。
  3. 数据显示考虑采用ListView。

工程名DBStudent

MainActivity.java

package com.example.dbstudent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.ContextMenu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class MainActivity extends Activity {
    private DBAdapter db;
    private Button bt_add;
    private EditText et_name;
    private EditText et_number;
    private EditText et_class;
    private ListView listview;
    private Student student;
    private int position;
    private SimpleAdapter simpleAdapter;
    Map<String, Object> item = new HashMap<String, Object>();
    private List<Map<String, Object>> Datas = new ArrayList<Map<String, Object>>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bt_add = (Button) findViewById(R.id.bt_add);
        et_name = (EditText) findViewById(R.id.et_name);
        et_number = (EditText) findViewById(R.id.et_number);
        et_class = (EditText) findViewById(R.id.et_class);
        listview = findViewById(R.id.listview);
        this.registerForContextMenu(listview);

        db = new DBAdapter(MainActivity.this);
        db.open();

        bt_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String cl = et_class.getText().toString();
                String num = et_number.getText().toString();
                String na = et_name.getText().toString();
                student = new Student(cl, num, na);
                long colunm = db.insert(student);

                Datas.clear();
                display();
                Toast.makeText(MainActivity.this, "添加成功", Toast.LENGTH_SHORT).show();
            }
        });

        display();
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo
            menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        //添加两个ITEM
        menu.add(0, 1, 0, "删除");
        //得到长按的position
        AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
        position = info.position;
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {

        AdapterView.AdapterContextMenuInfo menuInfo = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
        int pos = (int) listview.getAdapter().getItemId(menuInfo.position);
        //得到对应的map对象
        Map<String, Object> stu = Datas.get(pos);
        switch (item.getItemId()) {
            case 1:
                db.deleteOneData((Integer) stu.get("id"));
                Datas.remove(pos);
                simpleAdapter.notifyDataSetChanged();
                Toast.makeText(MainActivity.this, "ID:" + stu.get("id") + "删除成功", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
        return super.onContextItemSelected(item);
    }

    public void display() {

        String[] from = {"id", "class", "number", "name"};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值