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

Вынести код обработчика кнопки в другой модуль(класс)

17.08.2017, 16:08. Просмотров 296. Ответов 9
Метки нет (Все метки)

Здравствуйте.

Набросайте пожалуйста небольшой примерчик, как вынести объемный код обработчика нажатия кнопки Button в
другой модуль (класс)?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2017, 16:08
Ответы с готовыми решениями:

Хочу вынести функцию в другой файл
Есть файл utill.java добавляю в него public static boolean setLayout() ...

Написание метода обработчика событий кнопки
Здравствуйте. Необходимо по нажатию на кнопку открывать новую...

Вынести метод в отдельный класс
У меня есть вот такой метод, все данные типа String и два типа double ...

Корректно вынести класс в модуль
Здравствуйте. Вопрос: как ворректно вынести файл в отдельный модуль? Попробовал...

Вынести код создания списка в отдельный модуль
#include <iostream> #include <conio.h> using namespace std; struct A {...

9
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 1
17.08.2017, 16:21 2
все совсем печально?
Java
1
2
3
4
5
6
7
public class SomeClass implements View.OnClickListener {
    
    @Override
    public void onClick(View v) {
        // тут весь код
    }
}
вешаем на кнопку или вьюшку как обычно
Java
1
button.setOnClickListener(new SomeClass());
0
Cannon1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 414
17.08.2017, 18:42  [ТС] 3
Вот я сделал код по примеру, нажатие кнопки работает.
А как вынести указанный в соседний модуль(новый созданный модуль класса), можете написать по подробнее?

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
package com.sonexrfs.myapplication;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
 
public class MainActivity extends AppCompatActivity {
 
    TextView myTextView;
    Button myButton;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        myTextView = (TextView) findViewById(R.id.myTextView);
        myButton = (Button) findViewById(R.id.myButton);
 
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // этот код надо вынести в другой модуль
                myTextView.setText("Текст изменен!");
            }
        });
    }
}
Что-то не пойму и нагуглить не получается, все примеры в одном классе.

Сильно не пинайте, я привык к процедурному программированию в делфи..
0
ExFau$t
17.08.2017, 18:53
  #4

Не по теме:

Это не делфи, и использование такой методологии как минимум странно.

0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 1
17.08.2017, 19:23 5
в коде выше исправить строку
Java
1
myButton.setOnClickListener(new SomeClass(myTextView));
и ДРУГОЙ КЛАСС
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class SomeClass implements View.OnClickListener {
 
    private final TextView textView;
 
    public SomeClass(TextView textView) {
        this.textView = textView;
    }
 
    @Override
    public void onClick(View v) {
        textView.setText("Текст изменен!");
    }
}
1
Hank
64 / 55 / 5
Регистрация: 28.12.2011
Сообщений: 309
18.08.2017, 00:14 6
Почитайте про паттерн MVP, чтобы потом не переучиваться.
0
Cannon1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 414
18.08.2017, 05:23  [ТС] 7
Hank

Да мне чтобы что-то понять, нужны полные примеры кода, для всех модулей под компиляцию и с комментариями, а так пока не очень получается. Когда изучал делфи, таких примеров гораздо больше в интернете. Под андроид как-то все не очень с этим..
Так то погуглил..

Добавлено через 2 часа 31 минуту
Подскажите пожалуйста, делаю на примере фрагмента, но не получается изменить по нажатию кнопки вид карты
из модуля фрагмента. Я там пометил..

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
package com.sonexrfs.myapplication;
 
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
 
import com.google.android.gms.maps.GoogleMap;
 
 
public class Fragment1 extends Fragment {
    private GoogleMap mMap;
    private Button buttonFragment1;
 
 
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        final View view = inflater.inflate(R.layout.fragment_fragment1, container, false);
 
 
        buttonFragment1 = (Button) view.findViewById(R.id.buttonFragment1);
 
        buttonFragment1.setOnClickListener(new View.OnClickListener() {
 
 
            @Override
            public void onClick(View v) {
                buttonFragment1.setText("Map 2"); // Тут работает
                
                mMap =   КАК ТУТ СДЕЛАТЬ ???
                
                mMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
            }
        });
 
        return view;
    }
 
}
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 1
18.08.2017, 11:27 8
начни с HelloWorld, с такими вопросами...
1
Cannon1
2 / 2 / 2
Регистрация: 29.09.2012
Сообщений: 414
18.08.2017, 12:00  [ТС] 9
HelloWorld прошел, выше заданный вопрос остается в силе.

А что не так с вопросом? Форум позиционирует себя в том числе как и для начинающих программистов.

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

С андроидом все сложнее, вроде я спрашиваю не сложные для ответа вещи, можно было и привести пример, тем более про поднятие репутации я не забываю вроде...

От какого уровня здесь можно задавать вопросы, покажите в правилах форума?
0
Pablito
2812 / 2236 / 754
Регистрация: 12.05.2014
Сообщений: 7,821
Завершенные тесты: 1
18.08.2017, 12:45 10
Цитата Сообщение от Cannon1 Посмотреть сообщение
HelloWorld прошел
маловероятно
Цитата Сообщение от Cannon1 Посмотреть сообщение
я спрашиваю не сложные для ответа вещи, можно было и привести пример
можно было 100 раз найти самостоятельно, на форуме или в инете

и тут тоже пишут код, много кода...и отвечают на вопросы
но не на тупые в стиле "разжуйте мне все с комментариями, я ведь пришел на форум, мне тут все обязаны разжевать и не вздумайте меня посылать гуглить, я ведь на форум пришел, упали-отжались все"

тупыми эти вопросы я называю потому, что на них миллион раз уже отвечали, но каждый думает что он особенный и именно ему должны скопировать и повторить то, что и так валяется на каждом углу
0
18.08.2017, 12:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.08.2017, 12:45

Вынести код обработчиков кнопок в отдельный класс
Здравствуйте. Мальчики... возможно, и девочки, помогите. С#, Windows Form....

Вызов обработчика кнопки из другого обработчика.
Есть кнопка, есть у ней обработчик, который делает нечто полезное. Как вызвать...

AJAX вместо результата обработчика возвращает, исходный код обработчика
Здравствуйте, начал изучать AJAX и столкнулся с проблемой, при GET запросе в...


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

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

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