无法解析GetResources(),为非活动类Android设置上下文

时间:2016-12-12 22:29:06

标签: java android

我在android项目中创建了DBHelper.java类。在我的OnCreate()方法中,我创建了表到我的数据库,但我也想在这些表中插入行。所以我创建了file - script.sql,它包含我的插入查询。一切都会好起来的,但我无法解决一个问题 - 上下文。

这是我在DBHelper类中输入的代码:

   private void executeScript()
{
    InputStream inputStream = this.getResources().openRawResource(R.raw.script); // I get error here.
    byte[] buffer = new byte[7844];
    String queries = "";
    try {
        inputStream.read(buffer);
        queries =  new String(buffer,"UTF-8");
    } catch (Exception e) {
        Log.e("Error", e.toString());
    }
    for (String query : queries.split(";")) {
        Log.e("Query", query);
    }

}

我遇到错误:this.getResources()... 我知道我不能用这个,但我能做些什么呢? 我知道这段代码只显示日志,但我稍后会添加execSQL。

1 个答案:

答案 0 :(得分:0)

通过让调用者检索executeScript()资源值,将脚本文本传递到R.raw.script

或者,将Resources传递给executeScript(),以便调用openRawResource()

或者,将Context传递给executeScript(),以便可以在getResources()上致电Context