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

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

Войти
Регистрация
Восстановить пароль
 
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
#1

Передать информацию вызывающему классу - Программирование Android

16.07.2015, 13:58. Просмотров 355. Ответов 8
Метки нет (Все метки)

Доброго дня, вопрос такой:
Допустим у меня есть класс A, в нем есть Thread.
Java
1
2
3
4
public class A implements Runnable
{
 
}
Есть класс B в котором есть экземпляр класса А.
Java
1
2
3
4
5
6
7
8
9
public class MyActivity extends Activity 
{
int b;
A variable;
public void function()
{
b = 10;
} 
}
В классе A произошло какое либо событие, в связи с этим событием мне нужно вызвать метод function() класса В как это сделать?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2015, 13:58     Передать информацию вызывающему классу
Посмотрите здесь:

Передать через Intent информацию об Item - Программирование Android
Выводит ошибку и приложение закрывается by Force Close ошибка по ходу в Intente package kg.aykut.speak_kyrgyz; import...

Приведение TextView к своему классу - Программирование Android
public class MyTv extends TextView{ int place = -1; public MyTv(Context context) { super(context); } ...

Как обратиться к классу вшитому в jar архив - Программирование Android
Добрый вечер. Помогите разобраться. Задание такое: Сделать из определенного класса с простеньким методом свою первую собственную библиотеку...

Получить информацию из диалога - Программирование Android
Всем привет! Есть в методе onCreate: new AlertDialog.Builder(this) .setView(R.layout.dialog_signin) ...

Наложить информацию на фотографию - Программирование Android
У меня есть фотография, которая была получена из видео(содержит изображение какого то обьекта) и сохранена в файле android телефона. Мне...

Вытащить информацию из базы данных Sqlite - Программирование Android
Здравствуйте! Пишу простенькое приложение "Справочник". В кратком что у меня есть: 3 класса: MainActivity - тут у меня расположен ListView...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 653
16.07.2015, 15:24     Передать информацию вызывающему классу #2
Вообще вопрос задан не в той ветке, но если применимо к android, то можно почитать тут
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.07.2015, 15:38     Передать информацию вызывающему классу #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
1ые,

Java
1
2
3
4
5
6
7
8
9
public class A extends Observable implements Runnable {
 
 
    @Override
    public void run() {
        //Something happens
        notifyObservers();
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import java.util.Observable;
import java.util.Observer;
 
public class MyActivity extends Activity implements Observer {
 
 
    private int b;
    private A variable;
 
    public void onResume() {
        super.onResume();
        variable = new A();
        variable.addObserver(this);
    }
 
 
    @Override
    public void update(Observable o, Object arg) {
        function();
    }
 
    public void function() {
        b = 10;
    }
}
1ые
1 / 1 / 0
Регистрация: 19.01.2013
Сообщений: 98
17.07.2015, 01:11  [ТС]     Передать информацию вызывающему классу #4
Большое спасибо, не знал про такое, очень удобно)
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
17.07.2015, 11:42     Передать информацию вызывающему классу #5
1ые, это классическая реализация паттерна Observer
sskdroid
8 / 8 / 3
Регистрация: 03.03.2015
Сообщений: 68
15.11.2015, 12:30     Передать информацию вызывающему классу #6
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
public class New {
 
    public static void main(String[] args){
 
        Subj subj = new Subj();
        Nablud nablud = new Nablud();
 
        nablud.functionPrint();
        subj.run();
        nablud.functionPrint();
 
    }
}
 
 
public class Subj extends Observable {
    public void run() {
        //Something happens
        notifyObservers();
    }
}
 
 
public class Nablud implements Observer {
 
    private int b;
    private Subj variable;
 
    Nablud() {
        variable = new Subj();
        variable.addObserver(this);
    }
 
    @Override
    public void update(Observable o, Object arg) {
        function();
    }
 
    public void function(){
        b = 10;
    }
 
    public void functionPrint() {
        System.out.println(b);
    }
 
}
function() не вызывается и печатает оба раза ноль. в чем ошибка, подскажите?
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
15.11.2015, 14:39     Передать информацию вызывающему классу #7
Цитата Сообщение от sskdroid Посмотреть сообщение
Subj subj = new Subj();
тут одна ссылка,
Цитата Сообщение от sskdroid Посмотреть сообщение
variable = new Subj();
тут вторая
sskdroid
8 / 8 / 3
Регистрация: 03.03.2015
Сообщений: 68
15.11.2015, 15:04     Передать информацию вызывающему классу #8
видимо я чего-то не понимаю. при создании экземпляра Nablud создается экземпляр Subj, в котором сразу регистрируется экземпляр Nablud как наблюдатель. верно?

таким вот образом добираюсь то run() variable

в классе Nablud
Java
1
2
3
Subj returnVariable(){
        return variable;
    }
и в классе main
Java
1
nablud.returnVariable().run();
но update не срабатывает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2015, 14:28     Передать информацию вызывающему классу
Еще ссылки по теме:

Как редактировать информацию в Android Studio? - Программирование Android
Всем привет, Столкнулся с такой проблемой, что когда заполняешь активность большим количеством текста, то весь текст не видно. Как...

Необходимо создать скачивать информацию с сервера - Программирование Android
Здравствуйте. Недавно начал работать с андройд, уже немного понимаю, как работать с GUI(был довольно немалый опыт работы с Windows...

Возможно ли передавать информацию о входящем звонке? - Программирование Android
Добрый день. Мне никогда ранее не приходилось писать на мобильных платформах, поэтому заранее извиняюсь, если вопрос глупый. ...

Вытянуть информацию с кода страницы сайта - Программирование Android
Всем привет! Нашел пример в интернете как сделать простое приложение, которое считывает температуру с сайта. По кнопке Button обновляет...


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

Или воспользуйтесь поиском по форуму:
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
16.11.2015, 14:28     Передать информацию вызывающему классу #9
sskdroid,
setChanged() потеряли

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
public class New {
 
    public static void main(String[] args){
 
        Subj subj = new Subj();
        Nablud nablud = new Nablud(subj);
 
        nablud.functionPrint();
        subj.run();
        nablud.functionPrint();
 
    }
}
 
 
class Subj extends Observable {
    public void run() {
        //Something happens
        setChanged();
        notifyObservers();
    }
}
 
 
class Nablud implements Observer {
 
    private int b;
 
    Nablud(Subj variable) {
        variable.addObserver(this);
    }
 
    @Override
    public void update(Observable o, Object arg) {
        function();
    }
 
    public void function(){
        b = 10;
    }
 
    public void functionPrint() {
        System.out.println(b);
    }
 
}
Yandex
Объявления
16.11.2015, 14:28     Передать информацию вызывающему классу
Ответ Создать тему
Опции темы

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