2017-08-24 16 views
0

多くのボタンが付いたアクティビティがあるアンドロイドアプリを開発しています。それぞれの場合、既存のSQLiteデータベースから特定のエントリを表示する必要があります。ボタンを押すと、TextViewでポップアップウィンドウが表示され、私が言ったデータベースのエントリが表示されます。例:ボタン番号1を押すと、ID番号1のエントリが表示されます。既存のSQLiteデータベースからテキストを表示する方法

私は既存のデータベースを取得するためにSQLite Asset Helperを使用しましたが、自分のウィンドウで自分のエントリを取得する方法がわかりません。私は何もオンラインで見つけることができませんでした。ポップアップウィンドウ

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

のための私のポップクラスが助けてください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); 

} 


} 

ため

マイMYDATABASEクラス!

+0

データベースの操作については、ドキュメント、Androidアプリ開発の書籍とコースに記載されています。 'getReadableDatabase()'と 'rawQuery()'を使って 'MyDatabase'クラスからデータを取得する方法を説明します。 'TextView'のテキストを' findViewById() 'と' setText() 'を介して設定することは、私が言及したものを超えて無数の場所でカバーされています。だから、すべてのことを考えると、特にあなたが見つけられないのは何ですか? – CommonsWare

答えて

0

SQLをベースにしたクエリを実行してデータベースからデータを抽出します。クエリはカーソルを返します。このカーソルはデータの行で構成されています。

あなたはその後、カーソルからデータを抽出し、それがその後、テキストビューのsetText方法を使用しての問題です。データベースを仮定


MYCOLUMNという名前の単一の列を有し、MYTABLEという名前の単一のテーブルを有しています。その後

SQLはSELECT * FROM mytableことができた(これはテーブル名mytableはからすべて(*)列を選択すると言う。)、交互にSQLは、(特定の列が命名された場合には)SELECT mycolumn FROM mytableである可能性があります。

上記のSQLは、SQLiteDatabase rawQueryメソッドを使用して実行できます。 (DBが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); 

(これはすべての列を取得し、即ち2番目のパラメータがnull)。

カーソルは0行以上を保持でき、カーソルmoveのメソッドを使用してカーソルを移動できます。 mycursor.moveToNext()。適切に配置されたら、Cusror getのメソッドの1つを使用します。 getStringを使用してデータを取得します。あなたのクエリが1行だけ得ることができたと仮定すると

(例えば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(); 
関連する問題