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

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

Войти
Регистрация
Восстановить пароль
 
mathahakar
2 / 2 / 1
Регистрация: 31.01.2014
Сообщений: 80
#1

Создание класса и вызов его методов - Программирование Android

10.09.2015, 18:00. Просмотров 230. Ответов 2
Метки нет (Все метки)

Код:
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
public class DIYliq extends AppCompatActivity implements View.OnClickListener, SeekBar.OnSeekBarChangeListener {
//...
int GlobalA;
//...
@Override
public void onClick(View v) {
    switch(v.getId()) {
        case R.id.EditText:
        int A = Integer.parseInt(EditText.getText().toString());        
        int N = //Some calculations with int A...
        if (N>0){GlobalA=1}else{GlobalA=0}
        break;
            }
@Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
 
        switch(seekBar.getId()) {
        case R.id.SeekBar:
        EditText.setText(String.valueOf(SeekBar.getProgress()));
        break;
            }
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
        switch(seekBar.getId()) {
        case R.id.SeekBase:
        int A = Integer.parseInt(EditText.getText().toString());        
        int N = //Some calculations with int A...
        if (N>0){GlobalA=1}else{GlobalA=0}
        break;
            }
В коде есть идентичные строки, в которых выполняются расчёты:
Создание класса и вызов его методов

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

Так как во всём коде будет много подобных повторений с разными расчётами, нужно создать класс, в котором будут несколько методов (для каждого из повторений). Верно?

То есть, как-то так (схематически):

Java
1
2
3
4
5
6
class Calculations {
    void method_one(SeekBar seekBar, EditText editText){ //body of method 
    }
    void method_two(SeekBar seekBar, EditText editText){ //body of method 
    }
}
Вопрос, собственно, в том, как правильно написать сам класс (и куда его впихнуть в коде, он должен быть внутри класса public class DIYliq, или за его пределами?) и как потом использовать его методы в коде?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2015, 18:00     Создание класса и вызов его методов
Посмотрите здесь:

Вызов методов Context из статичного контекста - Программирование Android
Столкнулся с тем, что не могу получить содержимое ресурса из созданных классов. К примеру getString() не доступен. Нашел такой вариант...

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

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

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

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

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

Вызов класса из класса - Программирование Android
Здравствуйте есть класса Session_stud: public class Session_stud { public static class kurt extends AsyncTask<String, Void,...

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

Создание и вызов второго Activity - Программирование Android
Добрый день! Немного запутался с ООП в проекте суть в следующем: Имеем главное Activity: public class MainActivity extends...

Создание объекта класса - Программирование Android
public class MyClass { static int Variable = 1; } //создаю первый объект new MyClass(); //здесь MyClass.Variable = 1 ...

Создание экземпляра класса C++ в Java - Программирование Android
Здравствуйте! Подскажите, возможно ли создать экземпляр класса C++ в Java? Если да, то как? Если можно то пример с кодом C++ класса и...

Переопределение методов - Программирование Android
Здравствуйте! Помогите, пожалуйста разобраться. При вызове метода B.aa("Тест"), я получаю вывод в логах из методов B.aa(String x) и...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valakin
430 / 96 / 15
Регистрация: 21.02.2015
Сообщений: 729
11.09.2015, 08:03     Создание класса и вызов его методов #2
Цитата Сообщение от mathahakar Посмотреть сообщение
Вопрос, собственно, в том, как правильно написать сам класс (и куда его впихнуть в коде, он должен быть внутри класса public class DIYliq, или за его пределами?) и как потом использовать его методы в коде?
думается можно класс написать в отдельном mmm.java
потом импортируете его import mmm и создаете объект класса, после импорта можно и методы вызывать
mathahakar
2 / 2 / 1
Регистрация: 31.01.2014
Сообщений: 80
14.09.2015, 22:09  [ТС]     Создание класса и вызов его методов #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
31
32
33
34
35
36
37
38
39
40
41
Calculations.java:
package com.e_cigcalculations.e_cigliq;
 
public class Calculations {
        int getMaxStrength(int a, int b){
        int c = a + b;
            return c;
        }
}
 
Фрагмент из MainActivity.java:
 
//Objects
    Calculations calculations = new Calculations();
 
    //Globals
    int OutStrengthMax, OutStrengthMin, LowNic, HighNik, a, b;
 
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.Liq1et:
                a = Integer.parseInt(Liq1et.getText().toString());
                Liq2et.requestFocus();
                break;
            case R.id.Liq2et:
                b = Integer.parseInt(Liq2et.getText().toString());
                Liq2et.requestFocus();
                int sum;
                sum = Integer.parseInt(String.valueOf(calculations.getMaxStrength(a, b)));
                OutStrengthMax = sum;
                LiqOutStrengthet.setText(OutStrengthMax);
                break;
            case R.id.LiqOutStrengthet:
                int strength = Integer.parseInt(LiqOutStrengthet.getText().toString());
                SeekStrengthBar.setProgress(strength);
                LiqVolumeet.requestFocus();
                break;
        }
 
    }
При клике на Liq2et крашится.
Yandex
Объявления
14.09.2015, 22:09     Создание класса и вызов его методов
Ответ Создать тему
Опции темы

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