我在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。
答案 0 :(得分:0)
通过让调用者检索executeScript()
资源值,将脚本文本传递到R.raw.script
。
或者,将Resources
传递给executeScript()
,以便调用openRawResource()
。
或者,将Context
传递给executeScript()
,以便可以在getResources()
上致电Context
。