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

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

Войти
Регистрация
Восстановить пароль
 
Alex_Fedor
29 / 29 / 4
Регистрация: 20.01.2015
Сообщений: 219
#1

Стиль программирования - Программирование Android

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

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

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

Стиль LinearLayout - Программирование Android
Если дать LinearLayout`у стиль Edit`а - это нормально?) <LinearLayout android:orientation="horizontal" ...

Не изменяется стиль текста - Программирование Android
Здравствуйте. Хочу спросить, может кто сталкивался с таким. Есть два вот таких кода 1. if (mCheckI.isChecked()) { ...

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

Применить стиль к кнопке - Программирование Android
Файл Style: <resources> <!-- Base application theme. --> <style name="AppTheme"...

Переопределить стиль диалога - Программирование Android
Здравствуйте! Никак не получается корректно переопределить стиль диалога. Пытаюсь так: <style name="Theme.Paper.Dialog"...

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3116 / 1918 / 208
Регистрация: 13.01.2012
Сообщений: 7,332
07.08.2016, 12:22     Стиль программирования #2
Alex_Fedor, что бы передать что то в функцию нужно иметь место вызова функции - у OnClick место вызова - палец - о каких аргументах в этом случае идет речь? произошло событие - была нажата определенная кнопка, был вызван обработчик нажатия, он забрал нужные ему данные из нужных ему элементов интерфейса либо откуда-то еще если того требует задача и выполнил некоторый действия сохранив результат в нужные ему элементы интерфейса либо куда-то еще
Alex_Fedor
29 / 29 / 4
Регистрация: 20.01.2015
Сообщений: 219
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;
vxg
Модератор
3116 / 1918 / 208
Регистрация: 13.01.2012
Сообщений: 7,332
07.08.2016, 15:51     Стиль программирования #4
Alex_Fedor, напишите как бы вы хотели что бы это выглядело
Alex_Fedor
29 / 29 / 4
Регистрация: 20.01.2015
Сообщений: 219
07.08.2016, 17:23  [ТС]     Стиль программирования #5
Честно говоря, я и сам это не очень представляю. Просто по опыту знаю что переменным лучше ограничивать области видимости необходимыми для их работы. А в этом примере переменные х и y. мало того что имена очень просты, так еще и область видимости глобальная, хотя по программе используются в паре функций. Конечно можно задать имена чтобы не путаться, но проблему в целом это не решит. Проект посложнее и 50-100 переменных обеспечено. Где случайно не обнулил и все ищи ошибку. Если у вас хороший опыт программирования, то плиз напишите какой у вас подход.
vxg
Модератор
3116 / 1918 / 208
Регистрация: 13.01.2012
Сообщений: 7,332
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?
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
08.08.2016, 20:51     Стиль программирования #7
Это ?
Pablito
2414 / 1859 / 583
Регистрация: 12.05.2014
Сообщений: 6,596
Завершенные тесты: 1
09.08.2016, 11:08     Стиль программирования #8
по ссылке из сообщения выше какой-то бредовый код
ТС, не читай и не пытайся так делать, просто поверь на слово
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2016, 12:20     Стиль программирования
Еще ссылки по теме:

Изменить стиль DialogFragment - Программирование Android
Приветствую, Есть приложение, в приложении есть DialogFragment с DatePicker и парой кнопок. Как изменить его стиль? Ну хотя бы цвет...

Изменить стиль текста из кода - Программирование Android
Есть TextViev: ... <TextView style="@style/MyStyle1" android:id="@+id/MyTextView" android:text="@string/MyText" /> ... И...

Изменить стиль кнопки Android - Программирование Android
Кто может помочь с изменением стиля кнопки button. Как нужно или можно изменить стиль, чтобы не было проблем с углами, которые отображаются...

Програмно изменить стиль кнопки - Программирование Android
Возможно ли это? Где-то (на англоязычных форумах) читал что НЕТ. :( Но может я плохо читал или придумали уже... Цель - Нажимаю на...

Определить стиль, установленный у пользователя - Программирование Android
Приветствую всех :) Итак, мое приложение вешает иконку в трей. Цвет трея зависит от стиля андроида. Соответственно, на светлый трей...


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

Или воспользуйтесь поиском по форуму:
REALIST07
Автор FAQ
Автор FAQ
176 / 176 / 13
Регистрация: 11.06.2010
Сообщений: 932
09.08.2016, 12:20     Стиль программирования #9
Паблито,

Не по теме:

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

Yandex
Объявления
09.08.2016, 12:20     Стиль программирования
Ответ Создать тему
Опции темы

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