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

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

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

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

04.10.2013, 14:23. Просмотров 880. Ответов 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 Fragment and context
AsyncTask должен использовать Context Android
Можно ли так передавать context? Android
Context немного теории Android
Получение контекста! Android
Android Аналог context menu
Объект Context Android
Создание класса и вызов его методов Android
Программирование Android. Context Android
Использование Context в других классах Android
Android Context - ошибка
Android Как получить context MainActivity в Service?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 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
Сообщений: 415
04.10.2013, 14:34  [ТС]     Вызов методов Context из статичного контекста #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
Java
1
ApplicationContext.getInstance().getApplicationContext().getString(R.string.your_string_id)
Но у класса ApplicationContext нет метода getInstance()
YuraAAA
 Аватар для YuraAAA
1564 / 1306 / 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
Сообщений: 415
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 из статичного контекста
Ответ Создать тему
Опции темы

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