1

私はこのテーマに関する記事や本をたくさん読みました。ほとんどの場合、Android 開発について十分に理解しています。しかし、データベースを組み込むのに苦労しています。「ライブラリ」というデータベースがあります。データベースには、「Books」というテーブルがあります。「Books」テーブルには、「id、Book、Chapter」という 3 つの列があります。たとえば、Bookフィールドに基づいてChapterフィールドを参照したい... "Select Chapter FROM Books WHERE Book ="Genesis1";. Chapterフィールドのコンテンツは純粋なhtmlなので、私の出力を保存したいと思います文字列にクエリを実行し、その文字列を webview に配置します。目的は、検索ボックスまたはウィジェットを作成して、ユーザーがすべての本のコンテンツを検索できるようにすることです。

定数.java

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

そして、それが私が立ち往生しているところです!! 笑!私はおそらく軌道から外れています。どんな提案でも大歓迎です。ありがとう!

4

1 に答える 1

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

違いは何だと思いますか?適切なスペース...

于 2012-04-15T04:47:31.193 に答える