安卓开发中怎么修改数据库中的数据

安卓开发中怎么修改数据库中的数据,第1张

public

class

DatabaseHelper

extends

SQLiteOpenHelper

{

private

static

DatabaseHelper

mInstance

=

null;

/

数据库名称

/

public

static

final

String

DATABASE_NAME

=

"xysdb";

/

数据库版本号

/

private

static

final

int

DATABASE_VERSION

=

1;

/数据库SQL语句

添加一个表/

private

static

final

String

NAME_TABLE_CREATE

=

"create

table

test("

+

"_id

INTEGER

PRIMARY

KEY

AUTOINCREMENT,"

+

"name

TEXT,"+"hp

INTEGER

DEFAULT

100,"+

"mp

INTEGER

DEFAULT

100,"

+

"number

INTEGER);";

DatabaseHelper(Context

context)

{

super(context,

DATABASE_NAME,

null,

DATABASE_VERSION);

}

/单例模式/

static

synchronized

DatabaseHelper

getInstance(Context

context)

{

if

(mInstance

==

null)

{

mInstance

=

new

DatabaseHelper(context);

}

return

mInstance;

}

@Override

public

void

onCreate(SQLiteDatabase

db)

{

/向数据中添加表/

dbexecSQL(NAME_TABLE_CREATE);

}

@Override

public

void

onUpgrade(SQLiteDatabase

db,

int

oldVersion,

int

newVersion)

{

/可以拿到当前数据库的版本信息

与之前数据库的版本信息

用来更新数据库/

}

/

删除数据库

@param

context

@return

/

public

boolean

deleteDatabase(Context

context)

{

return

contextdeleteDatabase(DATABASE_NAME);

}

}

我通常的做法是,自己写adapter继承于BaseAdapter,然后加一个setData的公开方法

在activity中可以开启一个线程去取数据,取完数据调用handler对listView进行加载或刷新。

如果是加载就new

MyAdapter,listViewsetAdapter

如果是刷新就adaptersetData(),

adapternotifyDataSetChanged()

有不懂再问。

其实最传统的查询数据的方式当然是使用SQL语句了,Android当中也提供了直接使用原生SQL语句来查询数据库表的方法,即SQLiteDatabase中的rawQuery()方法,方法定义如下:

public Cursor rawQuery(String sql, String[] selectionArgs)

其中,rawQuery()方法接收两个参数,第一个参数接收的就是一个SQL字符串,第二个参数是用于替换SQL语句中占位符()的字符串数组。rawQuery()方法返回一个Cursor对象,所有查询到的数据都是封闭在这个对象当中的,我们只要一一取出就可以了。

虽然可能已经解决了,但是方便以后的人,我是这样做得:

在开发音乐播放器的时候,获取音乐文件是通过内容提供者开获得的,但是只是在开机或者插拔内存卡的时候才会进行扫描,如果把某一个文件删除掉,播放列表是不会刷新的,所以就需要我们人为地来进行刷新。

步骤:

>1发送广播让手机重新加载内存卡

`Intent intent = new Intent();

intentsetAction(IntentACTION_MEDIA_MOUNTED);

intentsetData(Uriparse("file://"+EnvironmentgetExternalStorageDirectory()));

sendBroadcast(intent);`

>2由于扫描完成,系统会发送一个广播,我们就注册监听扫描完成

`IntentFilter filter = new IntentFilter();

filteraddAction(IntentACTION_MEDIA_SCANNER_FINISHED);

filteraddDataScheme("file");

registerReceiver(receiver, filter);`

1·创建数据库Android

不自动提供数据库。在

Android

应用程序中使用

SQLite,必须自己创建数据库,然后创建表、索引,填充数据。Android

提供了

SQLiteOpenHelper

帮助你创建一个数据库,你只要继承

SQLiteOpenHelper

类,就可以轻松的创建数据库。

2·SQLiteOpenHelper

类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper

的子类,至少需要实现三个方法:构造函数,调用父类

SQLiteOpenHelper

的构造函数。

3·这个方法需要四个参数:

上下文环境(例如,一个

Activity),

数据库名字,

一个可选的游标工厂(通常是

Null),

一个代表你正在使用的数据库模型版本的整数。onCreate()方法,它需要一个

SQLiteDatabase

对象作为参数,根据需要对这个对象填充表和初始化数据。onUpgrage()

方法,它需要三个参数,一个

SQLiteDatabase

对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

public

class

DatabaseHelper

extends

SQLiteOpenHelper

{

DatabaseHelper(Context

context,

String

name,

CursorFactory

cursorFactory,

int

version)

{

super(context,

name,

cursorFactory,

version);

}

@Override

public

void

onCreate(SQLiteDatabase

db)

{

//

TODO

创建数据库后,对数据库的 *** 作

}

@Override

public

void

onUpgrade(SQLiteDatabase

db,

int

oldVersion,

int

newVersion)

{

//

TODO

更改数据库版本的 *** 作

}

superonOpen(db);

//

TODO

每次成功打开数据库后首先被执行

}

}

复制代码接下来讨论具体如何创建表、插入数据、删除表等等。

以上就是关于安卓开发中怎么修改数据库中的数据全部的内容,包括:安卓开发中怎么修改数据库中的数据、android往数据库添加数据后刷新列表,新数据无法显示、为什么我安卓使用LitePal更新数据库的布尔值会没有作用无论更新true或false都没用!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9344204.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存