Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
#1

Стиль программирования

07.08.2016, 06:50. Просмотров 297. Ответов 8
Метки нет (Все метки)

Я исчо начинающий. Прошу напинать в нужном направлении. Ситуация такая. В проекте используются вьивы с со стандартными обработчиками ну там нажать, коснуться, удерживать и тд. Вопрос такой как в эти обработчики передавать данные или объекты. Пока что передаю на уровне глобальных переменных, сам понимаю что как то коряво. К примеру у нескольких кнопок есть общий обработчик onClick(View v), при нажатии нужно выполнить кучу всего, от вывода текста до редактирования БД. В один прекрасный момент в какой нибудь процедурке неаккуратно поменяю какую нибудь глобальную переменную потом ошибку умру искать.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2016, 06:50
Ответы с готовыми решениями:

Как называется язык программирования для программирования на Android?
Как называется язык программирования для программирования на Android?

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

Стиль LinearLayout
Если дать LinearLayout`у стиль Edit`а - это нормально?) <LinearLayout ...

Не изменяется стиль текста
Здравствуйте. Хочу спросить, может кто сталкивался с таким. Есть два вот таких кода 1. if...

Изменить стиль DialogFragment
Приветствую, Есть приложение, в приложении есть DialogFragment с DatePicker и парой кнопок. Как...

8
vxg
Модератор
3247 / 2048 / 322
Регистрация: 13.01.2012
Сообщений: 7,926
07.08.2016, 12:22 #2
Alex_Fedor, что бы передать что то в функцию нужно иметь место вызова функции - у OnClick место вызова - палец - о каких аргументах в этом случае идет речь? произошло событие - была нажата определенная кнопка, был вызван обработчик нажатия, он забрал нужные ему данные из нужных ему элементов интерфейса либо откуда-то еще если того требует задача и выполнил некоторый действия сохранив результат в нужные ему элементы интерфейса либо куда-то еще
0
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
07.08.2016, 13:17  [ТС] #3
Еще раз извиняюсь за свою бестолковость. Есть куча функций, как стандартных обработчиков (например Button) так и моего бреда. Понятно, что в свои функции я могу предать параметры по ссылке или по значению. Тогда гарантировано я случайно не поменяю переменные.
А вот с той же самой кнопкой засада. По идее можно написать свой класс обработчика нажатия, но по моему это как то не айс.
Везде в учебниках сильно не упираются, все переменные, и не только вьивы объявляют в глобальных переменных. Вот к примеру кусок кода. Все переменные объявил на глобальном уровне. Только теперь нет гарантии, что где нибудь в функции сам критически не изменю переменную, в результате легко могу получить ошибку.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        TextView tvEngWord,tvTranscrip,tvAssociation,tvTranslate;
    ImageButton btnSpeak,btnEdit,btnControll;
    ImageView tvImage;
    final String MY_LOG="myLog";
    boolean dirTranslate;//направление перевода труе английские слова фальсе русские
    DbHelper dbHelper;
    SQLiteDatabase db;
    Cursor cur;
    boolean cursorIsEmpty=true;//курсор пустойзапись показывать не надо
    SharedPreferences sPref;
    String useTableName;//имя таблицы которую сейчас юзаем
    String speakEngWord;
    private final int RET_EDIT_ACTIVITY=1;//вернула активность EditDictonary
    private final int RED_NAME_USE_TABLE=2;//вернула автивность выбора словаря
    private final int RET_CONTROLL=3;//вернула активность Controll
    
    float x=0;//=event.getX();
    float y=0;//=event.getY();
    boolean visibleImage= true;//картинка показывается
    
    private TextToSpeech tts;
0
vxg
Модератор
3247 / 2048 / 322
Регистрация: 13.01.2012
Сообщений: 7,926
07.08.2016, 15:51 #4
Alex_Fedor, напишите как бы вы хотели что бы это выглядело
0
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
07.08.2016, 17:23  [ТС] #5
Честно говоря, я и сам это не очень представляю. Просто по опыту знаю что переменным лучше ограничивать области видимости необходимыми для их работы. А в этом примере переменные х и y. мало того что имена очень просты, так еще и область видимости глобальная, хотя по программе используются в паре функций. Конечно можно задать имена чтобы не путаться, но проблему в целом это не решит. Проект посложнее и 50-100 переменных обеспечено. Где случайно не обнулил и все ищи ошибку. Если у вас хороший опыт программирования, то плиз напишите какой у вас подход.
0
vxg
Модератор
3247 / 2048 / 322
Регистрация: 13.01.2012
Сообщений: 7,926
07.08.2016, 19:16 #6
Alex_Fedor, ну тогда если вам легче пусть будет так
Java
1
2
3
4
5
6
7
8
9
10
11
    private int myMethod(int x) {
        return x * x;
    }
    private OnClickListener myHandler = new OnClickListener() {
        @Override
        public void onClick(View arg0) {
            int x = Integer.parseInt(xEdit.getText().toString());
            int y = myMethod(x);
            yEdit.setText(String.valueOf(y));
        }
    };
Добавлено через 55 секунд
правда выглядит немного странно? почему бы просто не перенести все что лежит в myMethod в тело myHandler?
0
REALIST07
Автор FAQ
Автор FAQ
181 / 181 / 20
Регистрация: 11.06.2010
Сообщений: 949
08.08.2016, 20:51 #7
Это ?
0
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
09.08.2016, 11:08 #8
по ссылке из сообщения выше какой-то бредовый код
ТС, не читай и не пытайся так делать, просто поверь на слово
0
REALIST07
Автор FAQ
Автор FAQ
181 / 181 / 20
Регистрация: 11.06.2010
Сообщений: 949
09.08.2016, 12:20 #9
Паблито,

Не по теме:

то чувство когда сам компилятор так делает;)

0
09.08.2016, 12:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2016, 12:20

Стиль нажатого ImageView
Всем привет! Полторы недели начал как изучать java и сделал маленькую прогу ,так вот у меня есть...

Переопределить стиль диалога
Здравствуйте! Никак не получается корректно переопределить стиль диалога. Пытаюсь так: <style...

Кастомный стиль Button
Проблема: поменял у кнопки background на другой цвет и сразу "все попортилось" (то есть пропали...


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

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

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