我有数据库,我想用xml文件中的一些值填充它。
我正在使用此代码stream = context.getResources().openRawResource(R.xml.test_entry);
来定义流,但context
生成错误“无法解析符号'上下文'”。
我尝试将context
替换为getActivity(), getContext(), this, class name
,但仍然无效。我需要一些帮助...
public class DatabaseHelper extends SQLiteOpenHelper {
<...>
public DatabaseHelper(Context context) {
super(context, dbName, null, dbv);
}
public void onCreate (SQLiteDatabase db) {
<...>
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS "+tableName);
onCreate(db);
/////////////////
loadTestValuyes(); <----- My function
/////////////////
}
public void loadTestValuyes() {
test_addEntry stackOverflowXmlParser = new test_addEntry();
List<Entry> entries = null;
InputStream stream = null;
///// I need context here
stream = context.getResources().openRawResource(R.xml.test_entry);
/////////////////
try {
entries = stackOverflowXmlParser.parse(stream);
} finally {
if (stream != null) {
stream.close();
}
}
for (Entry entry : entries) {
<...>
}
}
}
由于
答案 0 :(得分:1)
您正在传递Context
作为构造函数参数。只需将其存储到成员变量:
private Context mContext;
public DatabaseHelper(Context context) {
super(context, dbName, null, dbv);
mContext = context;
然后使用mContext
,您需要Context
。
答案 1 :(得分:0)
您可以将Context对象的引用保存为实例变量,并在需要的地方使用它:
public class DatabaseHelper extends SQLiteOpenHelper {
private Context mContext;
public DatabaseHelper(Context context) {
super(context, dbName, null, dbv);
mContext = context;
}
}