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

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

Войти
Регистрация
Восстановить пароль
 
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
#1

Вызов методов Context из статичного контекста - Программирование Android

04.10.2013, 14:23. Просмотров 919. Ответов 4
Метки нет (Все метки)

Столкнулся с тем, что не могу получить содержимое ресурса из созданных классов.
К примеру getString() не доступен.
Нашел такой вариант решения: http://habrahabr.ru/post/134006/
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ApplicationContext extends android.app.Application {
 
    @NotNull
    private static ApplicationContext instance;
 
    public ApplicationContext() {
        instance = this;
    }
 
    @NotNull
    public static ApplicationContext getInstance() {
        return instance;
    }
}
AndroidManifest.xml:
Java
1
2
3
4
5
6
7
8
9
<manifest xmlns:a="http://schemas.android.com/apk/res/android">
 
     <application a:name=".ApplicationContext">
 
        // ...
 
     </application>
 
</manifest>
Но из-за очень ограниченных знаний по Java я не знаю как его применить.
Подскажите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 14:23     Вызов методов Context из статичного контекста
Посмотрите здесь:
Создание класса и вызов его методов Android
Получение контекста! Android
Android Context - ошибка
Объект Context Android
Android Fragment and context
Android Аналог context menu
Программирование Android. Context Android
Context немного теории Android
Использование Context в других классах Android
Можно ли так передавать context? Android
AsyncTask должен использовать Context Android
Android Как получить context MainActivity в Service?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
04.10.2013, 14:27     Вызов методов Context из статичного контекста #2
Java
1
ApplicationContext.getInstance().getApplicationContext().getString(R.string.your_string_id)
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
04.10.2013, 14:34  [ТС]     Вызов методов Context из статичного контекста #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
Java
1
ApplicationContext.getInstance().getApplicationContext().getString(R.string.your_string_id)
Но у класса ApplicationContext нет метода getInstance()
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
05.10.2013, 09:42     Вызов методов Context из статичного контекста #4
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ApplicationContext extends android.app.Application {
 
    @NotNull
    private static ApplicationContext instance;
 
    public ApplicationContext() {
        instance = this;
    }
 
    @NotNull
    public static ApplicationContext getInstance() {
        return instance;
    }
}
Вы же сами это написали
Slon747
59 / 37 / 1
Регистрация: 24.08.2013
Сообщений: 422
05.10.2013, 11:24  [ТС]     Вызов методов Context из статичного контекста #5
Цитата Сообщение от YuraAAA Посмотреть сообщение
Вы же сами это написали
Да, я перепутал.
При выполнении строки:
Java
1
String mess = ApplicationContext.getInstance().getApplicationContext().getString(R.string.ErrorReadFromDB);
Пишет:
java.lang.RuntimeException: Unable to resume activity {com.example.first/com.example.first.MainActivity}: java.lang.NullPointerException

Добавлено через 15 минут
Понял, причем тут resume activity. При открытии окна выполняется запрос, окно еще не показано.
Но я попробовал и на открытом окне, при выборе пункта меню. Всё равно ошибка типа "java.lang.NullPointerException".
Так что вероятно нет нормального варианта.

Добавлено через 18 минут
Пока что вышел из положения так.
В классе, из которого нужно вызывать ф-ции контекста:
Java
1
2
3
4
5
6
7
8
9
10
static Context context;
public WorkDB(Context context) {
        super(........);
        WorkDB.context = context;
    }
 
...
...
 
String mess = context.getString(R.string.ErrorReadFromDB);
Yandex
Объявления
05.10.2013, 11:24     Вызов методов Context из статичного контекста
Ответ Создать тему
Опции темы

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