Android:将 sqlite 数据库内容加载到 webview

Posted

技术标签:

【中文标题】Android:将 sqlite 数据库内容加载到 webview【英文标题】:Android: load sqlite database content to webview 【发布时间】:2012-11-22 23:04:08 【问题描述】:

我有一个 sqlite 数据库,其中有我想在 webview 中加载的内容,, 因为我想从数据库中选择并在网络视图中显示,有什么办法吗?

public class TataworatYawmeeh extends Activity 
    WebView webView;
    String javascrips;

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

        webView = (WebView) findViewById(R.id.tatworatWebView);
        webView.setBackgroundColor(0x00000000);

        try        
            DataBaseHelper myDbHelper = new DataBaseHelper(this);

            myDbHelper = new DataBaseHelper(this);

            try 
                myDbHelper.createDataBase();

                String selectQuery = "SELECT  * FROM 'nnn'";
                SQLiteDatabase db = myDbHelper.getReadableDatabase();
                db.execSQL(selectQuery);
             catch (IOException ioe)       
                throw new Error("Unable to create database");
            

            try 
                myDbHelper.openDataBase();

             catch (SQLException sqle) 
                throw sqle;
            
           
    

【问题讨论】:

【参考方案1】:

您必须使用 Java 类作为接口:

DataLoader dl = new DataLoader();

// For passing the data
webView.addjavascriptInterface(dl, "accessor");
webView.loadUrl("file:///android_asset/yourpage.html");

在您的活动中,您可以声明匿名类 DataLoader,使用 get 方法检索数据并使用 JSON 将其返回,如下所示:

class ChartDataLoader 
    public String getData() 
        String selectQuery = "SELECT  * FROM 'nnn'";
        SQLiteDatabase db = myDbHelper.getReadableDatabase();
        result = db.execSQL(selectQuery);

        Gson gson = new Gson();
        data = gson.toJson(result, resultype.class);

        return data;
    

最后,您可以在 html 中使用这些数据,使用 javascript:

<script id="source" language="javascript" type="text/javascript">
     var obj = window.accessor;
     var data = JSON.parse(obj.getBalances());
     /* Loop */
</script>

【讨论】:

db.execSQL(selectQuery) 的结果是无效的。我们如何将它分配给一个变量?

以上是关于Android:将 sqlite 数据库内容加载到 webview的主要内容,如果未能解决你的问题,请参考以下文章

android如何将SQLite 3.7 WAL文件的内容合并到主数据库文件中?

Android:从 SQLite 数据库加载

Android实用程序将sqlite db发送到服务器

Jellybean 中的 Android SQLite 数据库事务/锁定更改

Android:从某个点开始在列表视图上加载项目

android.database.sqlite.SQLiteException:靠近“编码”:语法错误(代码 1)