我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。我知道我必须从另一个 Activity 传递上下文,但是我不能这样做,否则会出现另一个错误-“ClassName类型的onCreate(SQLiteDatabase,Context)方法必须重写或实现超类型方法”。所以我被困住了。有没有打开该文件的更好方法?这是一行:
InputStream is = getAssets().open("file1.txt");
*注意:ClassName不是 Activity ,它只是一个类,因此,如果不从另一个 Activity 传递上下文,getAssets()将无法工作。
编辑:这是类和onCreate声明:
public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {//some stuff
InputStream is = getAssets().open("file1.txt");
//more stuff
}
}
最佳答案
我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。getAssets()
是Context
的一种方法。
我知道我必须从另一个 Activity 传递上下文,但是我不能这样做,否则会出现另一个错误-“ClassName类型的onCreate(SQLiteDatabase,Context)方法必须重写或实现超类型方法”。
由于您拒绝将源代码粘贴到发生这种情况的地方,因此很难为您提供帮助。
ClassName不是 Activity ,它只是一个类
更具体地说,它是SQLiteOpenHelper
的子类。
因此,如果不从另一个 Activity 传递上下文,getAssets()将无法工作。SQLiteOpenHelper
传递了一个Context
到其构造函数,您需要重写它。
除此之外,如果您的目标是使用应用程序please use SQLiteAssetHelper
打包数据库,因为它可以解决此问题。