2012-04-15 7 views
1

私はその件に関してたくさんの記事と本を読んだ。ほとんどの場合、アンドロイド開発のまともな把握を持っています。しかし、私はデータベースを組み込むのが苦労しています。私は "ライブラリ"と呼ばれるデータベースを持っています。データベースには "Books"というテーブルがあります。そして "Books"の表には、 "id、Book、Chapter"という3つのカラムがあります。私はブックフィールドに基づいてチャプターフィールドを参照したいと思っています... "Chapter Chapter from FROM Books WHERE Book =" Genesis1 ";チャプターフィールドの内容は純粋なhtmlなので、私の出力を保存したいクエリを文字列に変換してから、その文字列をWebviewに配置します。その目的は、ユーザーがすべてのブックコンテンツを検索できるように検索ボックスまたはウィジェットを検索できるようにすることです。 .javaandroid sqliteデータベースを照会し、結果をWebビューに表示できる文字列に格納する方法はありますか?

package watchtower.library.org; 

import android.provider.BaseColumns; 

public interface Constants extends BaseColumns { 
public static final String TABLE_NAME = "Books"; 

public static final String Book = "book"; 
public static final String Chapter = "chapter"; 
} 

LibraryData.java

package watchtower.library.org; 

import static android.provider.BaseColumns._ID; 
import static watchtower.library.org.Constants.TABLE_NAME; 
import static watchtower.library.org.Constants.Book; 
import static watchtower.library.org.Constants.Chapter; 
import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class LibraryData extends SQLiteOpenHelper { 
private static final String DATABASE_NAME = "WatchtowerLibrary.db"; 
private static final int DATABASE_VERSION = 1; 

public LibraryData(Context ctx){ 
    super(ctx, DATABASE_NAME, null, DATABASE_VERSION); 
} 
@Override 
public void onCreate(SQLiteDatabase db) { 
    db.execSQL("CREATE TABLE " + TABLE_NAME +"(+_ID" 
      + " INTEGER PRIMARY KEY AUTOINCREMENT, " + Book 
      + " INTEGER," + Chapter + " TEXT NOT NULL);"); 

} 
@Override 
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 
    // TODO Auto-generated method stub 

} 
} 

Genesis1.java

package watchtower.library.org; 

import static watchtower.library.org.Constants.TABLE_NAME; 
import static watchtower.library.org.Constants.Chapter; 
import android.app.Activity; 
import android.content.ContentValues; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.os.Bundle; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class Genesis1 extends Activity { 
private LibraryData WatchtowerLibrary; 
private Cursor getEvents() { 
    SQLiteDatabase db = WatchtowerLibrary.getReadableDatabase(); 
    Cursor cursor = db.rawQuery("SELECT Chapter" + "FROM" + TABLE_NAME + "WHERE                            
Book is Genesis1", null); 
    startManagingCursor(cursor); 
    return cursor; 
} 
private WebView webView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.scriptures); 

    webView = (WebView) findViewById(R.id.webview); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.setWebViewClient(new WebViewClient()); 
    webView.setWebChromeClient(new WebChromeClient()); 
} 
} 

それは私が立ち往生している場所です!笑!私はおそらくオフトラックです。私はあなたが持っている可能性のある示唆があればすばらしいです。ありがとう!

答えて

0

あなたのコードのこの部分:

Cursor cursor = db.rawQuery("SELECT Chapter" + "FROM" + TABLE_NAME + 
"WHERE Book is Genesis1", null); 

この

Cursor cursor = db.rawQuery("SELECT Chapter FROM " + TABLE_NAME + " WHERE     
Book is Genesis1", null); 

ようにする必要がありますが違いは何であるかと思いますか?適切なスペース...

+0

私はあなたが言ったことをし、私はあなたのポイントを参照してください。しかし、今私は正しいクエリ構文を持って、どのように私のWebViewに(私は復帰カーソルにあると思っている)クエリの結果を参照するつもりですか?それは私が「私用カーソルgetEvents()」をどこにも使用していないということです。 – Craig

関連する問題