Вызов функции с аргументом «Activity» - PullRequest
0 голосов
/ 07 апреля 2010

Я упустил свои функции для простоты:

public static int countLines(String fileName, Activity activity) throws IOException {  
   BufferedReader in = new BufferedReader(new InputStreamReader(activity.getAssets().open(fileName))); 
   return 3;
}

Я звоню отсюда:

private CharSequence RandomRead() throws IOException {
    int numberLines = countLines("data.txt", ??????);           
    return "Success"
}

В вызове countLines ("data.txt", ??????), что я должен указать в качестве аргумента для Activity? Я гуглил всю ночь, и я не могу найти примеров реального вызова функции, где Activity является аргументом. (Множество примеров на самом деле используют 'активность', но не вызывают функции примеров).

Спасибо!

1 Ответ

1 голос
/ 07 апреля 2010

getAssets () - это функция из класса Context. Причина, по которой вы можете использовать Activity, заключается в том, что Activity является косвенным подклассом Context.

В зависимости от того, куда вы вызываете countLines, вы должны иметь возможность передавать контекст приложения вместо объекта действия. В большинстве случаев вы можете получить контекст вашего приложения, вызвав getApplicationContext (). Просто измените свою функцию на:

public static int countLines(String fileName, Context context) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(context.getAssets().open(fileName))); 

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