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

问题描述:

我正在开发一个android应用程序,其中会有一个包含许多按钮的活动。在他们每个人中,我需要从现有的SQLite数据库中显示某个条目。当你按下一个按钮时,它会显示一个带有TextView的弹出窗口,它将显示我说的数据库的条目。例如:当您按下1号按钮时,它会显示ID号为1的条目。如何在textview中显示来自现有SQLite数据库的条目

我已经使用SQLite资产助手获取我的现有数据库,但无法找到如何让我的条目在其窗口中以及我无法在网上找到任何东西。

我MYDATABASE类的SQLite

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); 

} 


} 

我对弹出窗口

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)); 
}} 

流行类请帮助!

+0

有关使用数据库的信息,请参阅有关Android应用程序开发的书籍和课程。他们将向您展示如何使用'getReadableDatabase()'和'rawQuery()'从MyDatabase'类中检索数据。通过'findViewById()'和'setText()'在'TextView'中设置文本的内容覆盖了我之前提到的那些无数的地方。所以,考虑到所有这些,**特别**你无法找到? – CommonsWare

通过运行基于SQL的查询从数据库提取数据。该查询返回一个光标,它由多行数据组成。

然后,从该光标提取数据,然后只需用一个文本视图的setText方法的问题。


假设一个数据库具有名为MYTABLE一个表,它有一个名为mycolumn单个列。然后

的SQL可能是SELECT * FROM mytable(此说从表名称mytable的选择所有(*)列。),交替的SQL可能是SELECT mycolumn FROM mytable(在这种情况下,特定的列已命名)。

如上所述的SQL可以使用SQLite数据库rawQuery方法运行,例如, (其中分贝是SQLiteDatabase

Cursor mycursor = db.rwaQuery("SELECT * FROM mytable",null);

虽然优选的方法,是使用SQLiteDatabase简便方法query

例如

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

或交替

Cursor mycusror = db.query("mytable",null,null,null,null,null,null,null); 

(这得到的所有列,即第二参数为空)。

光标可以保存0行或更多行,并且可以通过使用光标move方法例如光标移动光标。 mycursor.moveToNext()。在适当定位后,您可以使用Cusror get中的一种方法,例如getString来检索数据。

假设你的查询只能得到单一的行(例如在WHERE子句包括_id = 1),那么你可以例如使用: -

if (mycursor.getCount() == 1) { 
    String mytext = mycursor.getString(mycursor.getColumnIndex("mycolumn")); 
    mytextView.setText(mytext); 
} 
mycursor.close(); 

交替下面也将工作作为move的方法将如果无法移动,则返回false: -

while (mycursor.moveToNext) { 
    String mytext = mycursor.getString(mycursor.getColumnIndex("mycolumn")); 
     mytextView.setText(mytext); 
} 
mycursor.close();