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

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

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

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

04.10.2013, 14:23. Просмотров 935. Ответов 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
Код: public class DIYliq extends AppCompatActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener { //... int...

Контекст для статичного метода - Программирование Android
Решил вынести часть кода в метод, чтоб использовать из других классов. И столкнулся с проблемой: &quot;Не знаю как получить контекст для...

Вызов статичного метода из потока - C++ Qt
Имеется такая функция: class MyClass { public: static int myFunction(int number) { static QHash&lt;int,int&gt; hash; ...

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

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

Вызов методов - Java SE
Добрый вечер, стыдно за подобные вопросы, но видимо голова уже совсем не варит :( Есть два класса, пока что, один с главным методом,...

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

Вызов методов - Java ME
Есть два метода, которые я вызываю последовательно: сначала вывод алерта, потом метод определения координат по gps. После запуска на...

Вызов методов класса - C++
Здравствуйте! При компиляции программы(в среде CodeBloks) выдается такая ошибка: request for member 'Arrayss:: array_proc' in 'j', which...

Вызов методов наследника - Java SE
в классе объявляется поле private AbstractStuff stuff; далее в методе создается объект типа ConcreeteStuff (ConcreeteStuff наследник...

Вызов методов класса - C#
Подскажите пожалуйсто, как из класса (созданного не в основном коде) вызвать функцию?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.10.2013, 11:24
Ответ Создать тему
Опции темы

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