Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
Androot
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 27
#1

Вызов функции из класса - Программирование Android

27.10.2012, 14:38. Просмотров 1849. Ответов 6
Метки нет (Все метки)

как сменить цвет из одного класса в другом классе
в главном классе:
Java
1
2
RelativeLayout rel;
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);
во втором классе:
Java
1
2
3
4
   void saveText() {
    MainActivity mc = new MainActivity();
 
mc.rel.setBackgroundColor(getResources().getColor(R.color.green));}
выкидывает java.lang.NullPointerException
и com.gt.tg.setting.saveText(setting.java:137)
с указанием на эту строчку mc.rel.setBackgroundColor(getResources().getColor(R.color.green));
что нужно исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 14:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Вызов функции из класса (Программирование Android):

Вызов класса
Добрый день? подскажите разрабатываю первое приложение под Android. Вопрос в...

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

Вызов метода из другого класса
Не могу разобраться, почему вылетает приложение, когда пытаюсь задать текст для...

Вызов метода из класса в таймере
Не могу получить титул веб страницы в таймере (ошибка). Пример: public...

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

Вызов класса из класса
Здравствуйте есть класса Session_stud: public class Session_stud { public...

6
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.10.2012, 14:46 #2
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);
secondClass.changeBackground(rel);
0
Androot
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 27
27.10.2012, 15:39  [ТС] #3
Цитата Сообщение от V0v1k Посмотреть сообщение
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);
secondClass.changeBackground(rel);
несовсем понял куда это вставлять

Добавлено через 34 минуты
Цитата Сообщение от Androot Посмотреть сообщение
несовсем понял куда это вставлять
он не может найти такую функцию changeBackground(rel);
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.10.2012, 16:46 #4
Цитата Сообщение от Androot Посмотреть сообщение
несовсем понял куда это вставлять
туда же, где у вас
Цитата Сообщение от Androot Посмотреть сообщение
RelativeLayout rel;
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);


Цитата Сообщение от Androot Посмотреть сообщение
он не может найти такую функцию changeBackground(rel);
вы должны этот метод сделать и поместить в него
Цитата Сообщение от Androot Посмотреть сообщение
rel.setBackgroundColor(getResources().getColor(R.color.green));
0
Androot
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 27
28.10.2012, 05:07  [ТС] #5
я так понял secondClass.changeBackground(rel); смена цвета в setting
а мне как раз нужно сменить цвет В MainActivity
это MainActivity
Java
1
2
 RelativeLayout rel;
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);
это setting
Java
1
2
3
4
   void saveText() {
    MainActivity mc = new MainActivity();
 
mc.rel.setBackgroundColor(getResources().getColor(R.color.green));}
Добавлено через 14 минут
Цитата Сообщение от Androot Посмотреть сообщение
я так понял secondClass.changeBackground(rel); смена цвета в setting
а мне как раз нужно сменить цвет В MainActivity
это MainActivity
Java
1
2
 RelativeLayout rel;
rel = (RelativeLayout)findViewById(R.id.RelativeLayout1);
это setting
Java
1
2
3
4
   void saveText() {
    MainActivity mc = new MainActivity();
 
mc.rel.setBackgroundColor(getResources().getColor(R.color.green));}
даже если сделать метод он все равно рушится здесь rel.setBackgroundColor(getResources().getColor(R.color.green)); на java.lang.NullPointerException
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
28.10.2012, 12:39 #6
во 1 - вам не нужно создавать новый экземпляр MainActivity(MainActivity mc = new MainActivity(), а использовать уже имеющийся. что мешает сделать в главном классе метод следующего содержания?
Java
1
2
3
public static void setColor() {
((RelativeLayout)findViewById(R.id.RelativeLayout1)).setBackgroundColor(getResources().getColor(R.color.green));
}
и потом просто вызывать этот метод из любой части программы, только следите что бы layout был установлен на activity, иначе будет ошибка вылетать.

Так же можно организовать через IntentFilter или SharedPreferance. Вариантов много ..
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.10.2012, 16:21 #7
Цитата Сообщение от Androot Посмотреть сообщение
я так понял secondClass.changeBackground(rel); смена цвета в setting
а мне как раз нужно сменить цвет В MainActivity
вы тут передаете RelativeLayout который находится в MainActivity и именно для него изменяется цвет.
0
28.10.2012, 16:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 16:21
Привет! Вот еще темы с решениями:

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

Вызов нестатического метода из другого класса
Здравствуйте. Подскажите, как можно вызвать нестатистический метод из другого...

Вызов js функции в webView
Добрый день! Имеется сайт со страницей поиска, который грузится в webView. Во...

Вызов функции и NULL reference
Итак, в MainActivity описана следующая функция setuFeed(): public class...


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

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

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