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

Обработка нажатия кнопок - Android

Восстановить пароль Регистрация
Другие темы раздела
Android <string> в XML возвращает INT в activity_main http://www.cyberforum.ru/android-dev/thread1843515.html
В XML recources/string строка: <string name="URLsrc">https://api.myjson.com/bins/2wgmq</string> В activity_main строка: URL url = new URL(R.string.URLsrc); Ошибка компиляции: Error:(42, 43) error: incompatible types: int cannot be converted to String Почему <string> в XML возвращает int?
Android Сохранить проект - достаточно ли скопировать папку из AndroidStudioProjects? Хочу форматнуть комп. Очень боюсь за сохранность проекта. в папке "AndroidStudioProjects" есть папка с моим проектом. Достаточно будет просто ее сохранить? Или нужно что-то еще? http://www.cyberforum.ru/android-dev/thread1843427.html
Android Некорректное заполнение ListView
Есть 2 фрагмента, в первом лист заполняемый с помощью TypedArray. Когда я перехожу по позиции листа и возвращаюсь назад, то лист заполняется заново и получается вместо 20 позиций 40. Как можно пофиксить?
OnClickListener не может вызвать метод с MainActivity Android
В MainActivity в onClickListener я могу вызвать метод selectCardFromList: public class MainActivity extends AppCompatActivity { CardClickListener cardClickListener; UIClickListener uiClickListener; ListView cardsListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);
Android В чем удобство ConstraintLayout? http://www.cyberforum.ru/android-dev/thread1843342.html
Уже не первый раз пытаюсь понять удобства и преимущества ConstraintLayout , но увы получается плохо. То что с помощью RelativeLayout и LinearLayout делаю за пару минут в ConstraintLayout занимает значительно больше времени и порой просто не получается. Стоит ли на него тратить время?
Android Частые повторы чисел генерируемых random Пытаюсь сгенерировать случайное число int max = 54; int min = 1; int odin = (int) (Math.random() * ++max) + min; генерирует в заданном диапазоне, но уж больно часты повторы. Например может раз пять подряд выдать одно и тоже число. Я конечно понимаю что с точки зрения теории вероятности это возможно, но закономерность заметил, повторы один за одним очень любит. Это моя ошибка при... подробнее

Показать сообщение отдельно
kondusov
2 / 2 / 0
Регистрация: 01.06.2013
Сообщений: 152
06.11.2016, 12:54     Обработка нажатия кнопок
Всем привет! Целый день мучала проблема. Что имею: телефон по bluetooth подключается к arduino и передает туда байты, в дуине это обрабатывается и в моем случае машина едет вперед назад влево вправо, и при ОДНОКРАТНОМ нажатии кнопки ВПЕРЕД, например, посылается один байт в дуино и машина едет примерно СЕКУНДУ, а мне нужно чтобы колеса крутились по времени пропорционально времени нажатия кнопки. Я использую вот такой обработчик нажатия кнопки:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
imageButon.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                switch (motionEvent.getAction()){
                    case MotionEvent.ACTION_DOWN:
                        if(myThreadConnected!=null) {
                            text.setText("DOWN" );
                            myThreadConnected.write("w".getBytes()); // ехать вперед
 
                        }
                    case MotionEvent.ACTION_UP:
                        if(myThreadConnected!=null) {
                            text.setText("UP");
                            myThreadConnected.write("p" .getBytes()); //остановить задние колеса
                        }
 
                }
                return false;
            }
        });
Я пробовал ACTION_BUTTON_PRESS/RELEASE - на них он не реагирует вообще. Это первая проблема. Вторая заключается в одновременной обработке нажатия двух кнопок - т.е. ВПЕРЕД(крутятся задние колеса)+ВЛЕВО(передние колеса поворачиваются влево). Сейчас одно нажатие перебивает другое..

до этого я реализовывал эту задачу не через мобильное приложение, а с помощью обычного java IE: вот пример

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
p.addKeyListener(new KeyListener() {
 
            @Override
            public void keyTyped(KeyEvent e) {
               
                    //System.out.println("nazata " + e.getKeyChar());
             
                
            }
 
            
            @Override
            public void keyPressed(KeyEvent e) {
                try {
                    int x=e.getKeyCode();
                    if(e.getKeyChar() == KeyEvent.VK_W){
                        
                        
                        serialPort.writeBytes("w".getBytes());
                    
                    }
                    
                    if(e.getKeyChar() == KeyEvent.VK_S){
                        
                       
                        serialPort.writeBytes("s".getBytes());
                   
                    }
                    
                    if(e.getKeyChar() == KeyEvent.VK_A){
                        
                    serialPort.writeBytes("a".getBytes());
                    
                    }
                    
                    if(e.getKeyChar() == KeyEvent.VK_D){
                        
                       serialPort.writeBytes("d".getBytes());
                        
                    
                    }
и всё происходило именно так, как мне нужно

Добавлено через 1 час 22 минуты
Я так понял, что нужно ловить двойное нажатие (motionEvent.getPointerCount() == 2) и дальше как-то узнать, какая именно кнопка была нажата первой, а какая второй, но как?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru