1.数据库的创建运行与更新
1.1.创建一个类继承SqliteOpenHelper
1.2.创建构造方法
/**
* 数据库创建类
public class DbSqliteOpenHelper extends SQLiteOpenHelper
{
* @param context 上下文
* @param name 数据库的名字如: students.db
* @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext();
* @param version 数据库的版本
public DbSqliteOpenHelper(Context context, String
name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}
* 当数据库被创建时,执行,
* 只会执行一次
@Override
public void onCreate(SQLiteDatabase db) {
* 当数据版本升级时执行,
* 数据版本只能升不能降 从1开始
* 这里常用于更改数据库中的表的结构,如添加列,删除列,之类的,创建新的表
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
}
}
|
1.3.更改构造方法
/**
* @param context 上下文
* @param name 数据库的名字如: students.db
* @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext();
* @param version 数据库的版本
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,
1);
}
更改后
* @param context 上下文
* @param name 数据库的名字如: students.db
* @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext();
* @param version 数据库的版本 这里的版本必须大于0,如果为0就会报错
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,
1);
} |
源码中的解释,数据库版本必须大于等于0,否则会抛出异常
将数据库版本设置为0,运行
不能降版本
1.4.在onCreate方法中创建数据库表
/**
* 当数据库被创建时,执行,
* 只会执行一次
@Override
public void onCreate(SQLiteDatabase db) {
//创建数据库表
//sql create table students(_id integer primary
key, name varchar(30))
db.execSQL("create table students(_id integer
primary key, name varchar(30))");
Log.i(TAG, "onCreate 方法执行了");
} |
1.5.在Activity中实例化
/**
* 数据库初始化
public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private DbSqliteOpenHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化
helper = new DbSqliteOpenHelper(this);
Log.i(TAG, "helper 实例化");
//执行下方的代码后才会创建数据库
helper.getWritableDatabase();
}
} |
创建数据库后并不会被创建,只有执行了,getReadDatabase或者getWriteDatabase(),
才会执行onCreate中的方法
运行查看LOG
1.6.数据已经创建,查看数据库
将数据库文件导出到桌面
SQLite Expert Professional 3打开
1.7.修改数据库版本,同是添加一列
/**
* 当数据版本升级时执行,
* 数据版本只能升不能降 从1开始
* 这里常用于更改数据库中的表的结构,如添加列,删除列,之类的,创建新的表
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade 方法执行了");
//sql alter table students add gender varchar(10)
//添加列
db.execSQL("alter table students add gender
varchar(10)");
} |
查看日志
1.8.导出数据库中的文件再次查看
列已经添加成功
2.传统方式操作数据库
使用sql来操作数据库
/**
* 传统数据库操作工具类
public class StudentDao {
private static final String TAG = "StudentDao";
* 操作数据库类
private DbSqliteOpenHelper helper;
public StudentDao(Context context){
helper = new DbSqliteOpenHelper(context);
}
* 插入方法
* @param name 姓名
* @param gender 性别
* @param stuno 学号
public void insert(String name,String gender,String
stuno){
//获取数据
SQLiteDatabase db = helper.getWritableDatabase();
String sql="insert into students values
(null,?,?,?)";
//填充占位符
Object [] bindArgs={name,gender,stuno};
//执行SQL
db.execSQL(sql, bindArgs);
//关闭数据库连接
db.close();
}
* 修改更改 update
* @param name 姓名
* @param gender 性别
* @param stuno 学号
public void update(String name,String gender,String
stuno){
//获取数据
SQLiteDatabase db = helper.getWritableDatabase();
String sql="update students set gender=?,stuno=?
where name=?";
//填充占位符
Object [] bindArgs={gender,stuno,name};
//执行SQL
db.execSQL(sql, bindArgs);
//关闭数据库连接
db.close();
}
* 删除
* @param name 姓名
public void delete(String name){
//获取数据
SQLiteDatabase db = helper.getWritableDatabase();
String sql="delete from students where
name=?";
//填充占位符
Object [] bindArgs={name};
//执行SQL
db.execSQL(sql, bindArgs);
//关闭数据库连接
db.close();
}
* 查询全部
public void getAll(){
//获取数据
SQLiteDatabase db = helper.getReadableDatabase();
String sql="select _id,name,gender,stuno
from students";
//执行SQL
Cursor cursor = db.rawQuery(sql, null);
while(cursor.moveToNext()){
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);
}
cursor.close();
//关闭数据库连接
db.close();
}
* 查询全部
public void getOne(String stuname){
//获取数据
SQLiteDatabase db = helper.getReadableDatabase();
String sql="select _id,name,gender,stuno
from students where name=?";
String[] selectionArgs = {stuname};
//执行SQL
Cursor cursor = db.rawQuery(sql, selectionArgs);
while(cursor.moveToNext()){
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:"+_id+"name:"+name+",gender:"+gender+",stuno:"+stuno);
}
cursor.close();
//关闭数据库连接
db.close();
}
}
|
测试类
/**
* 测试传统方式数据库工具类
public class TestStudentDao extends AndroidTestCase{
private StudentDao studentDao;
@Override
protected void setUp() throws Exception {
studentDao = new StudentDao(getContext());
}
* 测试插入
public void testInsert(){
studentDao.insert("lisi", "man",
"heimaAndroid2179");
}
* 测试插入
public void testDelete(){
studentDao.delete("liunan");
}
* 测试修改
public void testUpdate(){
studentDao.update("lisi", "女",
"33");
}
* 测试查询全部
public void testGetAll(){
studentDao.getAll();
}
* 测试查询一个
public void testGetOne(){
studentDao.getOne("lisi");
}
} |
3.数据版本判断与更新
/**
* 数据库创建类
public class DbSqliteOpenHelper extends SQLiteOpenHelper
{
private static final String TAG = "DbSqliteOpenHelper";
* @param context 上下文
* @param name 数据库的名字如: students.db
* @param factory 游标工厂 ,类似JDBC中的ResultSet中的hasNext();
* @param version 数据库的版本 这里的版本必须大于0,如果为0就会报错
public DbSqliteOpenHelper(Context context) {
super(context, "student.db", null,4);
}
* 当数据库被创建时,执行,
* 只会执行一次
* 第二闪运行是就不会执行了
@Override
public void onCreate(SQLiteDatabase db) {
int version = db.getVersion();
Log.i(TAG, "version:"+version);
Log.i(TAG, "onCreate 方法执行了");
if(version==0){
db.execSQL("create table students(_id integer
primary key autoincrement, name varchar(30),gender
varchar(10),stuno varchar(50))");
Log.i(TAG, "version=0执行了");
}else{
//创建数据库表
//sql create table students(_id integer primary
key, name varchar(30))
db.execSQL("create table students(_id integer
primary key autoincrement, name varchar(30))");
Log.i(TAG, "version不等0执行了");
}
}
* 当数据版本升级时执行,
* 数据版本只能升不能降 从1开始
* 这里常用于更改数据库中的表的结构,如添加列,删除列,之类的,创建新的表
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade 方法执行了");
Log.i(TAG, oldVersion+"");
Log.i(TAG, newVersion+"");
//算出新 旧版本的差
int difference = newVersion-oldVersion;
switch (difference) {
case 1:
db.execSQL("alter table students add gender
varchar(10)");
Log.i(TAG, difference+"");
break;
case 2:
db.execSQL("alter table students add gender
varchar(10))");
db.execSQL("alter table students add stuno
varchar(50))");
Log.i(TAG, difference+"");
break;
default:
break;
}
}
} |
4.使用Android提供的API来操作数据库
/**
* 使用Android中的API来执行操作数据库
public class StudentDao2 {
private static final String TAG = "StudentDao2";
* 操作数据库类
private DbSqliteOpenHelper helper;
public StudentDao2(Context context) {
helper = new DbSqliteOpenHelper(context);
}
* 插入方法
* @param name
* 姓名
* @param gender
* 性别
* @param stuno
* 学号
public long insert(String name, String gender,
String stuno) {
// 获取数据
SQLiteDatabase db = helper.getWritableDatabase();
// 填充占位符
ContentValues values = new ContentValues();
values.put("name", name);
values.put("gender", gender);
values.put("stuno", stuno);
String nullColumnHack = "values(null,?,?,?)";
// 执行SQL
long insert = db.insert("students",
nullColumnHack, values);
// 关闭数据库连接
db.close();
return insert;
}
* 修改更改 update
* @param name
* 姓名
* @param gender
* 性别
* @param stuno
* 学号
public int update(String name, String gender,
String stuno) {
// 获取数据
SQLiteDatabase db = helper.getWritableDatabase();
String sql = "update students set gender=?,stuno=?
where name=?";
// 填充占位符
ContentValues values = new ContentValues();
values.put("gender", gender);
values.put("stuno", stuno);
// 执行SQL
int update = db.update("students",
values, " name=?", new String[]{name});
// 关闭数据库连接
db.close();
return update;
}
* 删除
* @param name
* 姓名
public int delete(String name) {
// 获取数据
SQLiteDatabase db = helper.getWritableDatabase();
// 执行SQL
int delete = db.delete("students",
" name=?", new String[]{name});
// 关闭数据库连接
db.close();
return delete;
}
* 查询全部
public void getAll() {
// 获取数据
SQLiteDatabase db = helper.getReadableDatabase();
String sql = "select _id,name,gender,stuno
from students";
// 执行SQL
Cursor cursor = db.query("students",
new String[]{"_id","name","gender","stuno"},
null, null, null, null, null);
while (cursor.moveToNext()) {
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:" + _id + "name:"
+ name + ",gender:" + gender
+ ",stuno:" + stuno);
}
cursor.close();
// 关闭数据库连接
db.close();
}
* 查询全部
public void getOne(String stuname) {
// 获取数据
SQLiteDatabase db = helper.getReadableDatabase();
// 执行SQL
Cursor cursor = db.query("students",
new String[]{"_id","name","gender","stuno"},
"name =?", new String[]{stuname},
null, null, null);
while (cursor.moveToNext()) {
int _id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
String stuno = cursor.getString(cursor.getColumnIndex("stuno"));
Log.i(TAG, "_id:" + _id + "name:"
+ name + ",gender:" + gender
+ ",stuno:" + stuno);
}
cursor.close();
// 关闭数据库连接
db.close();
}
} |
测试
/**
* 测试传统方式数据库工具类
public class TestStudentDao2 extends AndroidTestCase{
private static final String TAG = "TestStudentDao2";
private StudentDao2 studentDao2;
@Override
protected void setUp() throws Exception {
studentDao2 = new StudentDao2(getContext());
}
* 测试插入
public void testInsert(){
long result = studentDao2.insert("lisi",
"man", "heimaAndroid2179");
Log.i(TAG, result+"");
}
* 测试插入
public void testDelete(){
int delete = studentDao2.delete("aa");
Log.i(TAG, delete+"");
}
* 测试修改
public void testUpdate(){
int update = studentDao2.update("lisi",
"hh", "33");
Log.i(TAG, update+"");
}
* 测试查询全部
public void testGetAll(){
studentDao2.getAll();
}
* 测试查询一个
public void testGetOne(){
studentDao2.getOne("gh");
}
} |
5.创建一个学生信息录入,使用ListView展示信息baseAdapter
布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="学生信息管理系统"
android:textColor="#77ff0000"
android:textSize="29sp" />
<EditText
android:id="@+id/et_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入学生姓名" />
<!-- 性别 -->
<RadioGroup
android:id="@+id/rgp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<!-- 性别男 -->
<RadioButton
android:id="@+id/rb_male"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:checked="true"
android:text="male" />
<!-- 性别女 -->
<RadioButton
android:id="@+id/rb_female"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="female" />
</RadioGroup>
<!-- 保存 -->
<Button
android:id="@+id/btn_save"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存" />
<!-- 查询 -->
<Button
android:id="@+id/btn_querty"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询全部学生信息" />
<ListView
android:id="@+id/lv_item"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ff0000"
android:dividerHeight="2dp">
</ListView>
</LinearLayout>
|
ListView要使用的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<ImageView
android:id="@+id/iv_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_margin="20dp"
android:src="@drawable/mr" />
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:layout_toRightOf="@id/iv_sex"
>
<TextView
android:id="@+id/tv_no"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="学号" />
<TextView
android:id="@+id/tv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tv_no"
android:text="姓名" />
<ImageView
android:id="@+id/iv_delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_margin="20dp"
android:src="@drawable/delete" />
</RelativeLayout>
</RelativeLayout>
|
数据库创建类
/**
* 数据库创建类,与维护的类 继承SQLiteOpenHelper
public class StudentSqliteOpenHelper extends
SQLiteOpenHelper {
private static final String TAG = "StudentSqliteOpenHelper";
public StudentSqliteOpenHelper(Context context)
{
super(context, "student.db", null,
2);
}
* 创建数据库时,执行一次,只执行一次
* 用来创建数据表
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG, "onCreate执行了");
//获取原来的版本,获取不到为0
int version = db.getVersion();
if(version==0){
//创建表
String sql= "create table students ( _id
integer primary key autoincrement, name varchar(30),gender
varchar(10))";
db.execSQL(sql);
}else{
//创建表
String sql= "create table students ( _id
integer primary key autoincrement, name varchar(30))";
db.execSQL(sql);
}
}
* 当数据库版本发生变化时执行
@Override
public void onUpgrade(SQLiteDatabase db, int
oldVersion, int newVersion) {
Log.i(TAG, "onUpgrade执行了");
switch (oldVersion) {
case 1:
String sql= "alter table students add gender
varchar(10)";
db.execSQL(sql);
break;
case 2:
break;
default:
break;
}
}
} |
实体类
/**
* 学生的封装类
public class Student {
* ID
private int id;
* 姓名
private String name;
* 性别
private String gender;
public Student() {
super();
}
public Student(int id, String name, String gender)
{
super();
this.id = id;
this.name = name;
this.gender = gender;
}
public String getGender() {
return gender;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setId(int id) {
this.id = id;
}
public void setName(String name) {
this.name = name;
}
} |
数据库工具类
/**
* 学生数据库访问工具类
public class StudentDao {
* 数据库创建更新类
private StudentSqliteOpenHelper helper;
public StudentDao(Context context) {
helper = new StudentSqliteOpenHelper(context);
}
* 插入一条记录
* @param name
* 姓名
* @param gender
* 性别
* @return 返回插入后的_id
public long insert(String name, String gender)
{
// 获取数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 插入的列
String nullColumnHack = "values(null,?,?)";
// 占位符
ContentValues values = new ContentValues();
values.put("name", name);
values.put("gender", gender);
// 执行
long insert = db.insert("students",
nullColumnHack, values);
// 关闭连接
db.close();
return insert;
}
* 修改一条记录
* @param name
* 姓名
* @param gender
* 性别
* @return 返回插入后的_id
public long update(String name, String gender)
{
// 获取数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 插入的列
// 占位符
ContentValues values = new ContentValues();
values.put("gender", gender);
// 执行
int update = db.update("students",
values, "name = ?",
new String[] { name });
// 关闭连接
db.close();
return update;
}
* 删除一条记录
* @param name
* 姓名
* @return 返回删除后的_id
public int delete(String name) {
// 获取数据库
SQLiteDatabase db = helper.getWritableDatabase();
// 执行
int delete = db.delete("students",
"name = ?", new String[] { name });
// 关闭连接
db.close();
return delete;
}
* 查询全部学生信息
* @return
public List<Student> getAll() {
// 容器
List<Student> list = new ArrayList<Student>();
// 获取数据库
SQLiteDatabase db = helper.getReadableDatabase();
String[] columns = { "_id", "name",
"gender" };
Cursor cursor = db.query("students",
columns, null, null, null, null,
null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
String gender = cursor.getString(cursor.getColumnIndex("gender"));
// 添加到集合中
list.add(new Student(id, name, gender));
}
// 关闭游标
cursor.close();
// 关闭
db.close();
return list;
}
} |
Activity
/**
* 学生管理信息系统Activity
* 步骤
* 1.获取用户输入姓名与选择的性别
* 2.判断是否为空,为空就提示,不为空
* 3.保存数据
* 4.点击查询,在下方的ListView中显示所有的学生信息
* 5.为ListView设置BaseAdapter
* 6.实现getCount与getView方法
* 7.返回view
* 8.点击删除,弹出提示对话框,
* 9.取消什么也不做,确定就删除当前记录
public class MainActivity extends Activity implements
OnClickListener {
* 姓名
private EditText et_name;
* 性别
private RadioGroup rgp;
* 保存
private Button btn_save;
* 查询
private Button btn_querty;
* 学生列表
private ListView lv_item;
* 学生表数据库操作类
private StudentDao studentDao;
* 学生列表
private List<Student> list;
* 学生列表适配器
private StuBaseAdapter stuBaseAdapter;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_name = (EditText) findViewById(R.id.et_name);
rgp = (RadioGroup) findViewById(R.id.rgp);
btn_save = (Button) findViewById(R.id.btn_save);
btn_querty = (Button) findViewById(R.id.btn_querty);
lv_item = (ListView) findViewById(R.id.lv_item);
* 初始化数据库学生表的工具类
studentDao = new StudentDao(this);
* 设置监听事件
btn_save.setOnClickListener(this);
btn_querty.setOnClickListener(this);
}
* 单击事件监听器
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_save:
// 保存
save();
break;
case R.id.btn_querty:
// 查询
query();
break;
}
}
* 查询学生列表
private void query() {
refresh();
}
private void refresh() {
* 查询全部学生信息
list = studentDao.getAll();
if (stuBaseAdapter == null) {
// 判断 为空就new ,为ListView设置适配器
stuBaseAdapter = new StuBaseAdapter();
lv_item.setAdapter(stuBaseAdapter);
} else {
// 通知ListView列表改变
stuBaseAdapter.notifyDataSetChanged();
}
}
* 保存学生信息
private void save() {
// 获取学生输入的信息
String name = et_name.getText().toString().trim();
// 判断
if (TextUtils.isEmpty(name)) {
Toast.makeText(this, "学生姓名不能为空", Toast.LENGTH_SHORT).show();
return;
}
// 获取性别
String gender = "male";
switch (rgp.getCheckedRadioButtonId()) {
case R.id.rb_male:
gender = "male";
break;
case R.id.rb_female:
gender = "female";
break;
}
// 开始保存
long insert = studentDao.insert(name, gender);
if (insert > 0) {
Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
et_name.setText("");
} else {
Toast.makeText(this, "保存失败", Toast.LENGTH_SHORT).show();
}
}
* 学生列表适配器
private class StuBaseAdapter extends BaseAdapter
{
private static final String TAG = "StuBaseAdapter";
@Override
public int getCount() {
return list.size();
}
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
Log.i(TAG, position + "");
View view;
if (convertView == null) {
view = View.inflate(MainActivity.this, R.layout.stu_item,
null);
} else {
view = convertView;
}
// 得到学生对象
final Student student = list.get(position);
ImageView iv_sex = (ImageView) view.findViewById(R.id.iv_sex);
if ("male".equals(student.getGender()))
{
iv_sex.setImageResource(R.drawable.mr);
} else if ("female".equals(student.getGender()))
{
iv_sex.setImageResource(R.drawable.miss);
}
TextView tv_no = (TextView) view.findViewById(R.id.tv_no);
tv_no.setText("编号:" + student.getId());
TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
tv_name.setText("姓名:" + student.getName());
ImageView iv_delete = (ImageView) view.findViewById(R.id.iv_delete);
iv_delete.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
// 对话框来提示用户是否删除
AlertDialog.Builder builder = new AlertDialog.Builder(
MainActivity.this);
builder.setTitle("删除").setIcon(R.drawable.tools)
.setMessage("确定要删除这条记录吗");
builder.setPositiveButton("确定",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int
which) {
* 删除方法
int delete = studentDao.delete(student.getName());
if (delete > 0) {
Toast.makeText(MainActivity.this, "删除成功",
Toast.LENGTH_SHORT).show();
// 刷新列表
refresh();
} else {
Toast.makeText(MainActivity.this, "删除失败",
Toast.LENGTH_SHORT).show();
}
}
});
builder.setNegativeButton("取消", null);
builder.create().show();
}
});
return view;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
}
} |
|