Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
9 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 88
1

Вызов класса

01.06.2016, 10:00. Показов 731. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день? подскажите разрабатываю первое приложение под Android. Вопрос в том что не совсем понял как можно вызвать из главного класса MainActivity другой класс задача состоит в том что бы при нажатии кнопки вызвался класс video и выполнял соответствующий метод меняя название у TextView ?
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
48
49
50
51
52
53
54
55
56
package com.example.admin.cen;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends AppCompatActivity {
 
    Button button;
    Button button2;
    Button button3;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        button = (Button) findViewById(R.id.button);
        button2 = (Button) findViewById(R.id.button2);
        button3 = (Button) findViewById(R.id.button3);
 
 
        button.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View view) {
 
                Communication communication = new Communication();
 
            }
        });
        button2.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View view) {
 
                Video video = new Video();
            }
 
 
        });
 
        button3.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View view) {
 
                Photo photo = new Photo();
            }
 
        });
 
 
    }
}
Класс Video

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.example.admin.cen;
 
 
import android.widget.TextView;
 
 
public class Video {
 
    TextView textView;
 
    public void tor(){
    textView.setText("Работает");
}
 
 
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.06.2016, 10:00
Ответы с готовыми решениями:

Вызов функции из класса
как сменить цвет из одного класса в другом классе в главном классе: RelativeLayout rel; rel =...

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

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

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

9
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
01.06.2016, 12:00 2
Java
1
2
3
4
5
public class Video {
 
    public void tor(TextView textView){
    textView.setText("Работает");
}
1
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
01.06.2016, 12:12 3
добрый день. так как вы написали это не сработает. видео это просто класс и по этому он не может обработать текствью.
вам нужно сделать коллбек. который будет возвращать в мейн активити из класса видео текст для текст вью
примерно нужно делать так
в мейн активити создаете класс видео
Java
1
public Video mVideo;
в OnCreate :
Java
1
mVideo = new Video(коллбек)

если не поняли. скажите я вам напишу подробнее

Добавлено через 7 минут
написал как это будет работать:

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
public class MainActivity extends AppCompatActivity implements FromVideoCallbackListener
{
 
    private Video mVideo;
    private TextView mTextView;
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mVideo = new Video(this);
        mTextView = (TextView) findViewById(R.id.textView);
    }
 
 
    @Override
    public void onStateChanged(String state)
    {
        mTextView.setText(state);
    }
}
 
public class Video
{
    private FromVideoCallbackListener mFromVideoCallbackListener;
 
    public Video(FromVideoCallbackListener fromVideoCallbackListener)
    {
        mFromVideoCallbackListener = fromVideoCallbackListener;
    }
 
    public void tor()
    {
        mFromVideoCallbackListener.onStateChanged("Работает");
    }
 
}
 
public interface FromVideoCallbackListener
{
    void onStateChanged(String state);
}
Добавлено через 1 минуту
это три разных класса, мейн, видео, FromVideoCallbackListener - интерфейс
0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
01.06.2016, 12:14 4
Цитата Сообщение от shavuz Посмотреть сообщение
добрый день. так как вы написали это не сработает. видео это просто класс и по этому он не может обработать текствью.
Что что что? Ещё разочек, пожалуйста.

Добавлено через 18 секунд
Callback тут не нужен в принципе
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
01.06.2016, 12:17 5
юраАА, мейн активити это UI значит он должен быть ответственный за текствью, а класс видео это просто класс который не имеет связи с юай, то есть с чего ему получать референс на текст вью(обьект юай). если класс видео хочет чтоб передать что то юай, он сообщает через колбек и активити (юай) это обрабатывает.
немного дизайн)))
0
393 / 338 / 83
Регистрация: 17.10.2014
Сообщений: 1,007
01.06.2016, 13:00 6
Цитата Сообщение от shavuz Посмотреть сообщение
немного дизайн)))

Не по теме:

ага, дизайн, а потом читаешь код этого дизайнера и руки ему в одно место хочется засунуть)

0
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
01.06.2016, 13:02 7
shavuz, не пишите чушь
Миниатюры
Вызов класса  
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
01.06.2016, 13:26 8
и самое главное - форматирование кода (точнее {}) не по конвенции!!!!!!!111
0
111 / 111 / 43
Регистрация: 24.05.2015
Сообщений: 329
01.06.2016, 15:30 9
Цитата Сообщение от shavuz Посмотреть сообщение
добрый день. так как вы написали это не сработает.

Не по теме:

Чисто из любопытства - вы это кому?
ТС-у или YuraAAA?

0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
01.06.2016, 18:23 10
почему не работает?
0
01.06.2016, 18:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2016, 18:23
Помогаю со студенческими работами здесь

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

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

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

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

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

Вызов новой активити не из класса активити
Есть 4 класса: 1) WelcomeActivity; 2) MainActivity; 3) PopUpActivity; 4) Client. Программа...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru