Дело, в том, что этот код я использую в одном классе. Но мне нужно еще в трех классах этот метод. Повторять коды везде, не правильно.
Если в классе без унаследования от Activity
, будут проблемы с getActivity()
или getContext()
, я думаю. Поэтому хотелось бы узнать, как правильно получить доступ к этому методы из разных классов?
public String loadJSONFromAsset() {
String json = null;
try {
InputStream is = getActivity().getAssets().open("cities_json.json");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
Создаете класс, который занимается работой с JSON'ом, не забывайте про принцип единой ответственности. Потом экземпляр этого класса в классе, где хотите его использовать и используйте. Вот самый простой пример:
class JSONHelper {
public String loadJSONFromAsset(Context context, String fileName) {
try(InputStream is = context.getAssets().open(fileName)) {
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
return new String(buffer, "UTF-8");
} catch (IOException e) {
e.printStackTrace();
//Опишите возвращение null в документации
return null;
}
}
}
Потом в требуемом месте создаете экземпляр этого класса и используете:
class MainActivity extends AppCompatActivity {
private JSONHelper mJsonHelper = new JSONHelper();
...
@Override
public void onCreate(Bundle savedInstanceState) {
...
mJsonHelper.loadJsonFromAssets(this, "cities_json.json");
}
}
Этот класс можно использовать в разных местах, при чем работать можно с контекстом, что намного удобнее контекса Activity
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Вообщем есть кнопка и текстовое окно, по нажатии этой кнопки выполняется метод fr1watch(); НО, как сделать, чтобы результат работы этого метода...
Пытаюсь разобраться с паттерном Page object и возник вопрос: Пытаюсь автоматизировать тестирование сайта на котором есть
Uri сохраняется и изображения подгружаются через uri(через SharedPreferences), но эти изображения еще и должны сохранятся, что я делаю через uri
Есть приложение, которое воспроизводит через интернет радио потокиПрисутствуют кнопки, чтобы останавливать проигрывание и продолжать его