如何从sqlite数据库中获取数据并显示在listview中

如题所述

第1个回答  推荐于2018-05-09
在登录页面后,我想在listview中把Apple显示成A,Boy显示成B等等,直到F。但是在程序中当我完全登录后,只有登录表成功创建,主菜单还是没有创建。
我想在test database中创建主菜单,然后我想从主菜单表(mainmenu table)中获取数据再显示在listview中。
我使用了下面的代码:
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);
}

SQLiteAdapter.java
}

public Cursor queueAll() {
String[] columns = new String[] { KEY_ID, KEY_CONTENT };
Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null,
null, null, null, null);

return cursor;
}

private static class SQLiteHelper extends SQLiteOpenHelper {

public SQLiteHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
}

@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(SCRIPT_CREATE_DATABASE);
db.execSQL(DATABASE_CREATE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub

}

}

public long AddUser(String username, String password) {
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_USERNAME, username);
initialValues.put(KEY_PASSWORD, password);
return sqLiteDatabase.insert(DATABASE_TABLE, null, initialValues);

}

public boolean Login(String username, String password) {
// TODO Auto-generated method stub
Cursor mCursor = sqLiteDatabase.rawQuery("SELECT * FROM "
+ DATABASE_TABLE + " WHERE username=? AND password=?",
new String[] { username, password });
if (mCursor != null) {
if (mCursor.getCount() > 0) {
return true;
}
}
return false;
}

}

ExampleActivity.java
public class ExampleActivity extends Activity {
private SQLiteAdapter mySQLiteAdapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView listContent = (ListView) findViewById(R.id.contentlist);

/*
* Create/Open a SQLite database and fill with dummy content and close
* it
*/
mySQLiteAdapter = new SQLiteAdapter(this);
mySQLiteAdapter.openToWrite();
// mySQLiteAdapter.deleteAll();

mySQLiteAdapter.insert("A for Apply");
mySQLiteAdapter.insert("B for Boy");
mySQLiteAdapter.insert("C for Cat");
mySQLiteAdapter.insert("D for Dog");
mySQLiteAdapter.insert("E for Egg");
mySQLiteAdapter.insert("F for Fish");

mySQLiteAdapter.close();

/*
* Open the same SQLite database and read all it's content.
*/
mySQLiteAdapter = new SQLiteAdapter(this);
mySQLiteAdapter.openToRead();

Cursor cursor = mySQLiteAdapter.queueAll();
startManagingCursor(cursor);

String[] from = new String[] { SQLiteAdapter.KEY_CONTENT };
int[] to = new int[] { R.id.text };

SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,
R.layout.row, cursor, from, to);

listContent.setAdapter(cursorAdapter);

mySQLiteAdapter.close();

}
}

运行程序后,登录表在数据库中创建了,但是主菜单表没有创建。运行程序后,显示一个错误:
sqlite returned code=1 no such a table in MY_TABLE

通过互联网整理获得以下解决方法:

=================1楼=====================
Database class:
public String getData1() throws SQLException{
// TODO Auto-generated method stub
String[] columns1 = new String[] { KEY_DATE };
Cursor c1 = ourDatabase.query(DATABASE_MARKSTABLE, columns1, null, null, null,
null, KEY_ENDINGTIME+" DESC", " 30");
String result1 = "";

int isName = c1.getColumnIndex(KEY_DATE);

for (c1.moveToFirst(); !c1.isAfterLast(); c1.moveToNext()) {

result1 = result1 + c1.getString(isName)
+ " " + "\n";
}
c1.close();
return result1;
}本回答被网友采纳
第2个回答  2016-04-15
代码:
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数据库中获取数据并显示在listview中
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);} ...

android中怎么将SQLite中的数据显示在Listview中(用Cursor)
之后就是把这个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 vo...

请问如何做一个安卓手机软件来listview一个sqlite数据库中的指定...
将这个 数据库 x.db 放到 手机sd 卡里面,然后 用eclipse 写个 类 基于 sqllite db help 的子类 写一些操作数据库的方法,然后 在activity 里面 定义个 listview ,调用 数据库类中的数据显示到list view 里面,ok ,发布 运行

安卓开发如何储存输入框的信息并用listview输出
android存储方式有很多 SharedPreferences ,SQLite,Content Provider等等,如果是服务器的话可以用Mysql,你输入框的数据可以采用以上任意一种方式,至于在ListView中无非就是讲你Edtext的内容用getText().toString().trim();方法付给一个变量。然后再你的ArrayList<变量类型>对象中调用add方法将那个变量传进去...

...中SimpleCursorAdapter更改数据后,刷新listview的问题
一般用到了cursoradapter适配器,也会用到加载器,是Android3.0加入的, 用来异步加载数据,当数据库中改变时,会自动通过观察者模式知道数据库改变了.然后调用加载器中的onLoadFinished方法,然后调用cursoradapter.swapCursor(游标) 就可以刷新listview了

如何将Android数据库中表格的某一列在下拉列表中显示
在第一个列表添加onchange属性,当你选择发生变化时进行页面提交,提交以后,你判断从第一个列表中取值.String str = request.getParameter("area");当取出的值不为""和null时,即取得了地区代码,01,02...用这个值,构造SQL语句,检索数据库,"select 地区 from 表 where 代码 like '"+str+"%' and ...

SQlite如何重新排列主键
那么,你在实际过程中使用数据库记录的时候,应当在界面的显示list中定义一个id自增变量,每次从数据库中提取出来的数据记录的那个id不用,用你自定义的这个自增id,这样显示的时候,可以做到记录与记录之间是连续的,即使你数据库中的记录不是连续的。而你如果实在要用数据库id作为在界面上的记录自增...

java我要获取数据库信息,但是实际上不允许我直接操作数据库,我该怎么办...
\/\/添加m_ListView到m_LinearLayout中 m_LinearLayout.addView(m_ListView,param); \/\/设置显示m_LinearLayout的布局 setContentView(m_LinearLayout); \/\/打开已经存在的数据库 mSQLiteDatabase = this.openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null); \/\/获取数据库Phones中的Cursor try{ \/\/在数据库中创建一...

Android开发中,二维码识别添加历史记录查询功能
你扫描完以后不是得到一组字符吗 然后你就保存到sqlite数据库 历史记录就是去数据库里读取出来,用个listView显示出来就完了

Android开发中,二维码识别添加历史记录查询功能
你扫描完以后不是得到一组字符吗 然后你就保存到sqlite数据库 历史记录就是去数据库里读取出来,用个listView显示出来就完了

相似回答