Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 478
#1

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

04.10.2013, 14:23. Просмотров 1103. Ответов 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 я не знаю как его применить.
Подскажите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 14:23
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вызов методов Context из статичного контекста (Программирование Android):

Вызов Context из другого класса
Как вызвать Context из класса Output public class MapsActivity extends...

Создание класса и вызов его методов
Код: public class DIYliq extends AppCompatActivity implements...

Контекст для статичного метода
Решил вынести часть кода в метод, чтоб использовать из других классов. И...

Вызов статичного метода из потока
Имеется такая функция: class MyClass { public: static int...

Реализовать ввод исходных данных, расчет и вывод данных в виде методов класса. В Main только создание объектов и вызов методов
Всем привет) помогите пожалуйста с заданием &quot;Реализовать ввод исходных данных,...

Вызов метода. Ошибка "The name 'factorialNum' does not exist in the current context"
Помогите что не так выдает ошибку во втором методе при обращение к...

4
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
04.10.2013, 14:27 #2
Java
1
ApplicationContext.getInstance().getApplicationContext().getString(R.string.your_string_id)
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 478
04.10.2013, 14:34  [ТС] #3
Цитата Сообщение от YuraAAA Посмотреть сообщение
Java
1
ApplicationContext.getInstance().getApplicationContext().getString(R.string.your_string_id)
Но у класса ApplicationContext нет метода getInstance()
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
05.10.2013, 09:42 #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;
    }
}
Вы же сами это написали
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 478
05.10.2013, 11:24  [ТС] #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);
0
05.10.2013, 11:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2013, 11:24
Привет! Вот еще темы с решениями:

Вызов методов
Есть два метода, которые я вызываю последовательно: сначала вывод алерта, потом...

Вызов методов
Добрый вечер, стыдно за подобные вопросы, но видимо голова уже совсем не варит...

Вызов методов класса
Доброго дня! Ребят, подскажите, пожалуйста, что означает следующий код: ...

List и вызов методов
Подскажите пожалуйста как для каждого элемента списка вызвать свой метод? ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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