我正在尝试打开资产文件夹中的文件。但是使用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 打包数据库,因为它可以解决此问题。

10-07 20:55