您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
   
 
 
     
   
 订阅
  捐助
安卓第四天笔记-Sqlite
 
作者:森林森 来自于:博客园 发布于 2016-3-16
  1944  次浏览      16
 

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;

}

}

}

   
1944 次浏览       16
 
相关文章

手机软件测试用例设计实践
手机客户端UI测试分析
iPhone消息推送机制实现与探讨
Android手机开发(一)
 
相关文档

Android_UI官方设计教程
手机开发平台介绍
android拍照及上传功能
Android讲义智能手机开发
相关课程

Android高级移动应用程序
Android系统开发
Android应用开发
手机软件测试
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]

android人机界面指南
Android手机开发(一)
Android手机开发(二)
Android手机开发(三)
Android手机开发(四)
iPhone消息推送机制实现探讨
手机软件测试用例设计实践
手机客户端UI测试分析
手机软件自动化测试研究报告
更多...   

Android高级移动应用程序
Android应用开发
Android系统开发
手机软件测试
嵌入式软件测试
Android软、硬、云整合

领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...