Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
reisal78
643 / 556 / 131
Регистрация: 28.04.2013
Сообщений: 1,579
#1

Как получить данные из файла .properties - Программирование Android

03.06.2015, 11:33. Просмотров 461. Ответов 10
Метки нет (Все метки)

Всем привет.
У меня есть класс который не наследуется от Activity. (Это класс фабрика)
Как можно открыть в нем InputStream для чтения файла .properties? (Куда положить файлик?)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2015, 11:33     Как получить данные из файла .properties
Посмотрите здесь:

Как получить данные с гироскопа с телефона? - Программирование Android
Здравствуйте, не могли бы вы помочь мне с тем, как получить данные с гироскопа с телефона на ос андроид. Получить данные(точнее координаты)...

Как получить данные контакта из Contact Provider - Программирование Android
Подскажите как получить все данные из Contact Provider относящиеся к конкретному контакту?

Как получить данные из социальных сетей и записать их в андроид-приложение? - Программирование Android
Необходимо сделать автозаполнение формы в андроиде элементами из аккаунта Вконтакте. Кто знает что-нибудь про api-интерфейсы с социальными...

Как получить данные из Runnable процесса вызываемого из CallBack функции - Программирование Android
Доброго всем суток, вопрос новичка, учусь.. Пишу программу под Андроид, в главном классе создал метод MethodName в котором всё...

Как получить объект класса LinearLayout из файла .xml? - Программирование Android
Как вместо этого: LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL); TextView...

Data Backup -как получить адрес файла стандартных настроек - Программирование Android
Здравствуйте! На developer.android.com прочитал урок о использовании BackupAgentHelper. К сожалению, там приводится совсем элементарный...

Как передать в функцию название массива в который будут грузиться данные из файла? - Программирование Android
Шесть файлов с данными, нужно загрузить каждый в отдельный массив. Вызываю функцию, указываю из какого файла в какой массив загрузить. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.06.2015, 11:37     Как получить данные из файла .properties #2
reisal78, в папку assets.
Java
1
2
3
4
5
6
7
8
9
10
Resources resources = getResources();
AssetManager assetManager = resources.getAssets();
 
try {
    InputStream inputStream = assetManager.open("config.properties");
    Properties properties = new Properties();
    properties.load(inputStream);
} catch (IOException e) {
    e.printStackTrace();
}
reisal78
643 / 556 / 131
Регистрация: 28.04.2013
Сообщений: 1,579
03.06.2015, 11:39  [ТС]     Как получить данные из файла .properties #3
YuraAAA,
getResources() я так понимаю, что метод Context a? От чего мне унаследовать мой класс?
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
03.06.2015, 11:44     Как получить данные из файла .properties #4
reisal78, ну так передайте в него контекст при создании
reisal78
643 / 556 / 131
Регистрация: 28.04.2013
Сообщений: 1,579
03.06.2015, 11:59  [ТС]     Как получить данные из файла .properties #5
Класс выглядит так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class FactoryLinks {
    public static final String TAG = "mc2";
    private static FactoryLinks instance;
    private Map<String, Object> links;
 
    public static synchronized FactoryLinks getInstance() {
        if (instance == null) {
            instance = new FactoryLinks();
        }
        return instance;
    }
 
    private FactoryLinks() {
        links = new HashMap<>();
 
 //       InputStream inputStream = ;
        Properties prop = new Properties();
        try {
 //           prop.load(inputStream);
            Log.i(TAG, "Файл конфигурации загружен");
        } catch (IOException e) {
            Log.e(TAG, "Ошибка загрузки файла конфигурации " + e.getMessage());
            e.printStackTrace();
        }
    }
 
 
    public Object getLink(String key) {
        if (!links.containsKey(key)) {
            throw new IllegalArgumentException("Key " + key + " not found in Factory");
        }
        return links.get(key);
    }
}
Добавлено через 15 минут
Идея у меня такая.
- стартую приложение.
- показываю пользователю стартовую активити.
- инициализирую фабрику
- в фабрике из файла пропертей получаю классы для которых нужно создать объекты.
- в фабрике создаю объекты классов, реализующих нужные мне интерфейсы и помещаю их в мапу.
- в дальнейшем в приложении, "дергаю" эти объекты из фабрики.

androbro, просто в синглтон передавать параметром что то... мне кажется это не лучшая идея =)
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.06.2015, 12:02     Как получить данные из файла .properties #6
Сообщение было отмечено автором темы, экспертом или модератором как ответ
reisal78,
1. Создайте класс TheApplication.java и унаследуйте его от Application класса
2. Пропишите его как name в тэге <application в файле манифеста.
3. TheApplication сделайте singleton
4. Получите контекст из любого места Вашей программы с помощью TheApplication.getInstance().getApplicationContext()

Добавлено через 1 минуту
Цитата Сообщение от reisal78 Посмотреть сообщение
public static synchronized FactoryLinks getInstance()
Cинхронизация метода не самое лучшее решение. Если у Вас есть шанс одновременного вызова из нескольких потоков, можно использовать что-то типа double check-lock singleton
reisal78
643 / 556 / 131
Регистрация: 28.04.2013
Сообщений: 1,579
03.06.2015, 12:36  [ТС]     Как получить данные из файла .properties #7
Цитата Сообщение от YuraAAA Посмотреть сообщение
Cинхронизация метода не самое лучшее решение. Если у Вас есть шанс одновременного вызова из нескольких потоков, можно использовать что-то типа double check-lock singleton
Я бы сказал "не самое быстрое решение"...
Спасибо за совет

Добавлено через 19 минут
Цитата Сообщение от YuraAAA Посмотреть сообщение
3. TheApplication сделайте singleton
С приватным конструктором не работает.
Но если я правильно разобрался с жизненным циклом андройд приложений, то объект Application будет создан всего один при старте приложения?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.06.2015, 13:38     Как получить данные из файла .properties #8
reisal78, да, совершенно верно. Забыл упомянуть, это не совсем "классический" синглетон.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class TheApplication extends Application {
    private static TheApplication sApplication;
 
    public static TheApplication getInstance() {
        return sApplication;
    }
 
    @Override
    public void onCreate() {
        super.onCreate();
        sApplication = this;
    }
}
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
03.06.2015, 13:51     Как получить данные из файла .properties #9
YuraAAA, если не составить труда выскажите Ваши соображения по ситуации:
у меня есть ряд так сказать параметров(типа user_id, user_fio итд.) которые нужны в некоторых activity.
я каждый раз дергаю их из sharedPreference.
может быть целесообразней воспользоватся штукой которую Вы привели?и живет такой "синглтон" на протяжении всего ЖЦ приложения?
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
03.06.2015, 14:22     Как получить данные из файла .properties #10
androbro, Да, это вполне нормальный вариант. Вы можете хранить их в инстансе аппликейшена.
Цитата Сообщение от androbro Посмотреть сообщение
и живет такой "синглтон" на протяжении всего ЖЦ приложения?
да
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2015, 14:47     Как получить данные из файла .properties
Еще ссылки по теме:

Поиск файла на внешних устройствах или как получить список всех смонтированных носителей - Программирование Android
В общем есть задача найти файл test.txt в директории testdir на любом устройстве SD карта или USB устройство. На разных Android...

Получить имя файла из диалога выбора файла - Программирование Android
Нашел класс диалога выбора файла: package com.stetsenko.openfiledialog; import android.app.AlertDialog; import...

Получить данные о ошибке - Программирование Android
А можно ли как-то при возникновении ошибки в приложении, получить имя ошибки, что за ошибка и в какой строчке она произошла и вывести это...

Получить данные в string - Программирование Android
Добрый ночи такая проблема возникает. Вот код для получение страницы public class FirstFragment extends Fragment { ...

Получить данные по конкретному чату - Программирование Android
Здравствуйте, такая проблема, не могу понять как лучше реализовать эту идею. У меня есть массив объектов типа Chat, у каждого объекта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
03.06.2015, 14:47     Как получить данные из файла .properties #11
YuraAAA, ок, спасибо!
Yandex
Объявления
03.06.2015, 14:47     Как получить данные из файла .properties
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru