如何在textview中显示现有SQLite数据库中的条目

时间:2017-08-24 17:08:16

标签: android database sqlite textview

我正在开发一个Android应用程序,其中会有一个带有许多按钮的活动。在每个中我都需要显示现有SQLite数据库中的某个条目。当你按下一个按钮时,它会显示一个带有TextView的弹出窗口,它会显示我说的数据库的条目。示例:当您按下按钮编号1时,它将显示ID编号为1的条目。

我已经使用SQLite资产助手来获取我现有的数据库,但我无法找到如何在他们的窗口中获取我的条目而我无法在网上找到任何内容。

我的SQLite的Mydatabase类

import android.content.Context;

import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;


public class MyDatabase extends SQLiteAssetHelper {

private static final String DATABASE_NAME = "mydatabase1.db";
private static final int DATABASE_VERSION = 1;

public MyDatabase(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

}


}

弹出窗口的我的Pop类

import android.app.Activity;
import android.os.Bundle;
import android.util.DisplayMetrics;

public class Pop extends Activity{



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.popwindow);

    DisplayMetrics dm= new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);

    int width = dm.widthPixels;
    int height = dm.heightPixels;

    getWindow().setLayout((int)(width*.8),(int)(height*.6));
}}

请帮忙!

1 个答案:

答案 0 :(得分:0)

通过运行基于SQL的查询从数据库中提取数据。查询返回 Cursor ,它由数据行组成。

然后您从光标中提取数据,然后只需使用文本视图的 setText 方法

假设数据库有一个名为 mytable 的表,其中有一个名为 mycolumn 的列。然后

SQL可以是SELECT * FROM mytable(这表示从表名mytable中选择所有( * )列。),或者SQL可以是{{1} (在这种情况下,特定列已被命名)。

上面的SQL可以使用SQLiteDatabase SELECT mycolumn FROM mytable方法运行,例如(其中 db 是SQLiteDatabase

rawQuery

首选方法是使用SQLiteDatabase便捷方法Cursor mycursor = db.rwaQuery("SELECT * FROM mytable",null);

e.g。

query

或者

Cursor mycusror = db.query("mytable",String[]{"mycolumn"},null,null,null,null,null,null);

(这会获取所有列,即第二个参数为空)。

光标可以容纳0行或更多行,您可以使用光标Cursor mycusror = db.query("mytable",null,null,null,null,null,null,null); 方法移动光标,例如move。如果位置适当,您可以使用其中一种Cusror mycursor.moveToNext()方法,例如get检索数据。

假设您的查询只能获得一行(例如WHERE子句包含_id = 1),那么您可以使用: -

getString

如果无法进行此移动,则以下方法也会起作用,因为if (mycursor.getCount() == 1) { String mytext = mycursor.getString(mycursor.getColumnIndex("mycolumn")); mytextView.setText(mytext); } mycursor.close(); 方法将返回false: -

move