
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都没用!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)