2013-03-23 2 views
3

Я пытаюсь открыть файл, находящийся в папке с ресурсами. Но использование getAssets() дает приведенную выше ошибку. Я знаю, что мне нужно передать контекст из другого действия, но я не могу этого сделать, как тогда возникает другая ошибка ... «Метод onCreate (SQLiteDatabase, Context) типа ClassName должен переопределять или реализовывать метод супертипа». Поэтому я застрял. Есть ли лучший способ открыть этот файл? Вот строка:Использование getAssets() дает ошибку «Метод getAssets() не определен для типа ClassName"?

InputStream is = getAssets().open("file1.txt"); 

* Примечание: ИмяКласс это не деятельность, это просто класс, так getAssets() не может работать без прохождения контекста от другой деятельности.

Edit: Вот класс и OnCreate декларация:

public class DatabaseHandler extends SQLiteOpenHelper { 
@Override 
public void onCreate(SQLiteDatabase db) {//some stuff 
InputStream is = getAssets().open("file1.txt"); 
//more stuff 
} 
} 
+1

некоторые Java-код будет хороший человек ... – Sajmon

+0

@Sajmon Я добавил строку –

ответ

6

Я пытаюсь открыть файл, который находится в папке активов. Но использование getAssets() дает приведенную выше ошибку.

getAssets() - это метод на Context.

Я знаю, что я должен передать контекст от другой деятельности, но я не могу этого сделать или как то другую ошибку comes- "Метод OnCreate (SQLiteDatabase, Context) типа ClassName должен переопределить или реализовать надтип метод».

Поскольку вы отказались вставить исходный код, где это происходит, вам сложно помочь.

ИмяКласса это не деятельность, это просто класс

Более конкретно, это подкласс SQLiteOpenHelper.

так getAssets() не может работать без передачи контекста из другого вида деятельности.

A SQLiteOpenHelper получает переданный Context его конструктору, который необходимо переопределить.

Помимо всего этого, если ваша цель состоит в том, чтобы упаковать базу данных с вашим приложением, please use SQLiteAssetHelper, так как он решил эту проблему.

4

Как насчет:

InputStream is = getActivity().getAssets().open("file1.txt"); 
+0

Опять ошибка приходит поговорка «Метод getActivity() не определено для типа ClassName.». –

4

Использование getContext() Метод. Set getContext().getAssets(). Я надеюсь, что это сработает. Фактически getAssets() - это метод в контексте. Для получения более подробной информации вы можете посетить Here

Смежные вопросы