Java 使用getAssets()会出现错误;类型ClassName“的getAssets()方法未定义;?
我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”。所以我被卡住了。有没有更好的方法打开该文件?这是一句话:Java 使用getAssets()会出现错误;类型ClassName“的getAssets()方法未定义;?,java,android,Java,Android,我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误。我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”。所以我被卡住了。有没有更好的方法打开该文件?这是一句话: InputStream is = getAssets().open("file1.txt"); *注意:ClassName不是一个活动,它只是一个
InputStream is = getAssets().open("file1.txt");
*注意:ClassName不是一个活动,它只是一个类,因此如果不从另一个活动传递上下文,getAssets()将无法工作
编辑:下面是类和onCreate声明:
public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {//some stuff
InputStream is = getAssets().open("file1.txt");
//more stuff
}
}
那么:
InputStream is = getActivity().getAssets().open("file1.txt");
我正在尝试打开资产文件夹中的文件。但是使用getAssets()会产生上面给出的错误
getAssets()
是Context
上的一个方法
我知道我必须从另一个活动传递上下文,但我也不能这样做,因为这时出现了另一个错误——“ClassName类型的onCreate(SQLiteDatabase,context)方法必须重写或实现一个超类型方法”
由于您拒绝将源代码粘贴到发生这种情况的位置,因此很难为您提供帮助
ClassName不是一个活动,它只是一个类
更具体地说,它是SQLiteOpenHelper
的一个子类
因此,如果不从另一个活动传递上下文,getAssets()将无法工作
SQLiteOpenHelper
将Context
传递给它的构造函数,您需要覆盖它
除此之外,如果您的目标是在应用程序中打包数据库,因为它已经解决了这个问题。使用getContext()
方法。设置getContext().getAssets()
。我希望它能起作用。实际上,getAssets()是一种基于上下文的方法。
有关更多详细信息,您可以访问一些java代码会很好,伙计…@Sajmon我添加了一条线,当出现错误时,会说“类型ClassName的getActivity()方法未定义”。