android中怎么将SQLite中的数据显示在Listview中(用Cursor)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android中怎么将SQLite中的数据显示在Listview中(用Cursor)相关的知识,希望对你有一定的参考价值。
我建立好了一个SQLite数据库,想吧数据显示在Listview中,用Cursor游标读取数据的方法是什么,同时怎么让数据显示在Listview中。请教会的人讲解详细点,感谢。
参考技术A public List<String> findAllDate()//我的一个方法List<String> list = new ArrayList<String>();
SQLiteDatabase database = dbopenhelper.getWritableDatabase();
Cursor cursor = database.rawQuery("select date from health", new String[]);//这边写上你的查询语句
while(cursor.moveToNext())
list.add(cursor.getString(0));
cursor.close();
database.close();
return list;
之后就是把这个LIST显示在Listview中;
如:SimpleAdapter adapter=new SimpleAdapter(Listview.this,list
,R.layout.viewdate,new String[]"date",
new int[]R.id.tdate);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() //事件
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3)
....
);
希望对你有用本回答被提问者采纳 参考技术B 代码:
if(username.length()>0&&password.length()>0)
SQLiteAdapter db=new SQLiteAdapter(Main.this);
db.openToWrite();
if(db.Login(username,password))
System.out.println("goutham");
Intent intent=new Intent(getApplicationContext(),ExampleActivity.class);
startActivity(intent);
SQLite在Android程序中的使用方法,SQLite的增删查改方法
Sqlite:
1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一。
2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序中使用SQLite的语句来创建数据库,并实现数据库的增删查改
SQLite的简单使用方法:
如何获得一个数据库的class模板,并设定数据库里的数据结构:
自己新建一个类,继承SQLiteOpenHelper,并重写构造方法,oncreate(),onUpgrade()
自定义类的代码实现方法和构造方法的原始模板解析:
public class Database extends SQLiteOpenHelper { public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, version);
//Context
//String name "创建数据库的名字"
//SQLiteDatabase.CursorFactory factory "在数据库中查找是的光标(相当于数组中的下标)"
// int Version "数据库的版本信息"
} @Override public void onCreate(SQLiteDatabase db) { //在创建数据库的时候调用 } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //每次启动数据库会检测数据库的版本信息,如果版本有变动就会执行此方法 } }
用来实现数据库的自定义类的具体代码:
public class Data extends SQLiteOpenHelper
public Data(Context context) {
//简单起见,直接指定了数据库的名字为DATA,光标信息为null,版本为1
//所以在自定义的类的构造方法中只有Context参数
//在调用父类构造方法的时候,给定固定的参数来简化数据库创建
super(context,"DATA", null, 1); } @Override public void onCreate(SQLiteDatabase db) {
//创建数据库建构内容的语句,具体解析在下文整理 db.execSQL("CREATE TABLE user("+
"_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT \"\"," + "sex TEXT DEFAULT \"\")");
//以上的语句给出了一个名为user的数据库结构对象,里面包含INTERGER类型的_id信息,并自增
//TEXT数据类型的name
//text数据类型的sex
} @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //由于给出了版本参数信息为固定的1,所以不会执行数据库更新操作 } }
自己重写了数据库的模板后,如何实现数据库的使用和管理:
1.利用自定义的数据库类来新建一个数据库对象,
2.再通过新建的数据库得到可读的数据库对象和可写的数据库对象,
新建ContentValues对象向获得的可写数据库中添加内容,实现代码:
Private Data data = new Data(this); private SQLiteDatabase dbWriter = db.getWritableDatabase(); ContentValues cv = new ContentValues(); cv.put("name",etName.getText().toString()); cv.put("sex",etSex.getText().toString());
//insert方法的三个参数的意义分别是:插入数据表的名称,插入数据表的位置信息,插入的对象
dbWriter.insert("user",null,cv);
//每次使用完数据库之后,记得关闭数据库,类似I/O的关闭
dbWrite.close();
注:位置信息这里填的是null,具体运行方式尚不清楚,但看到这里的时候,有时间去研究一下
通过获得的可读数据库对象,在目标数据库中进行查找的方法实现代码:
SQLiteDatabase DB = db.getReadableDatabase();
//新建一个光标对象,指明在“user”数据表中查找,后面的参数是一系列限制条件,
//全部为null意味输出所有user中的数据 Cursor c = DB.query("user",null,null,null,null,null,null);
//当光标仍然能够向下一行运行的时候,执行数据库的读取操作
while (c.moveToNext()){ String name=c.getString(c.getColumnIndex("name")); String sex=c.getString(c.getColumnIndex("sex")); Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();
}
以上是关于android中怎么将SQLite中的数据显示在Listview中(用Cursor)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Android Studio 将 SQLite 中的数据显示为动态卡片
在android中的sqlite数据库中的listview中显示数据[关闭]