Создать класс для чтения файлов - PullRequest
0 голосов
/ 15 января 2012

Я пытаюсь создать свой собственный класс для чтения строк из файла, но, похоже, это проблема.

Из того, что я смог определить, стандартные (Java) способы не работают под Android. Мне нужно получить getResources () и т. Д.

public myInput(Context context) throws FileNotFoundException{
    super();
    br = new BufferedReader(new InputStreamReader(context.getResources().
            openRawResource(R.raw.file)));
}

Это конструктор. Я пытаюсь создать это так.

public void choosePassword(Context context){
    try{
        myInput fromFile = new myInput(context);
    } catch(Exception e){

    }
}

Метод choosePassoword () вызывается из моего класса Activity, и, честно говоря, не знаю, что он хочет для Context. Я хочу дать методу choosePassword () файл, из которого он должен выбрать этот пароль, это то, что я хочу ... может кто-нибудь помочь мне сделать это?

Ответы [ 2 ]

2 голосов
/ 15 января 2012

Activity является косвенным подклассом Context, поэтому вы можете просто использовать choosePassword(this) при вызове его со своего Activity.

0 голосов
/ 15 января 2012

... честно говоря, не знаю, что он хочет для контекста

ОК.Это важная вещь для понимания в Android.Контексты - это основа, по которой почти все приложения взаимодействуют или даже имеют идентичность.Контекст по существу идентифицирует, откуда возникла команда запуска Компонента (это упрощение).Для запуска компонента Android он должен иметь контекст для запуска. К счастью, в большинстве случаев контекст предоставляется вам.Существует два конкретных типа контекста, к которым вы почти всегда будете иметь доступ:

  1. Каждое действие является контекстом.Этот объект подлежит вызовам метода жизненного цикла.

  2. Каждое приложение является контекстом.Этот находится за пределами жизненного цикла и инициализируется еще до того, как любой другой компонент приложения будет создан.

Оба они могут использоваться везде, где вам может понадобиться контекст.Если вам нужен контекст приложения, вы можете получить его практически из любого компонента с помощью метода getApplication().

для ваших целей

Это делает ваши звонки довольно простыми.Если все ваши звонки сделаны из вашей активности, вы можете указать this в качестве аргумента.Более того, если сами методы являются частью вашей Деятельности, вам не обязательно передавать Контекст в качестве аргумента, и снова просто используйте this.

Важного примечания

Вы узнаете, что иногда легче получить тот или иной контекст.Вы также узнаете, что иногда, хотя это может быть более трудным, безопаснее использовать один контекст над другим.Для этого я бы порекомендовал прочитать о жизненном цикле деятельности.Неправильное использование может привести к утечкам памяти и небезопасному выполнению.В общем, если вам нужен контекст для данных или выполнения, которые выживают только в течение жизненного цикла, вы можете использовать действие.Если вам нужен контекст для данных или выполнения, которое происходит за пределами жизненного цикла, используйте приложение.

Во всяком случае, не значит писать книгу.Существует много информации о контекстах, о том, как их использовать и какие использовать.Конечно, читайте об этом.Это сделает вашу жизнь на тонну легче.

Надеюсь, это поможет,

FuzzicalLogic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...