2017-08-24 109 views
0

我正在開發一個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

回答

0

通過運行基於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(); 
相關問題