С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
krasdok
0 / 0 / 0
Регистрация: 11.03.2010
Сообщений: 62
1

Как сделать кнопку которая выполняет что либо когда она только нажата а убираешь палец нет

25.05.2018, 12:52. Просмотров 131. Ответов 4
Метки нет (Все метки)

Мне нужно сделать пульт для управления.
Сейчас сделал так кликнул на кнопку (onClick) актуатор заработал, для остановки есть другая кнопка и поменять направление движение в другую сторону третья кнопка. Одним словом "Вверх" "Стоп" "Вниз".
Можно ли сделать так: нажал (держишь) кнопку "Вверх" актуатор крутится в одну сторону, отпустил встал, нажал и удерживаешь кнопку "Вниз" крутиться в низ, отпустил останавливается???

Добавлено через 1 час 46 минут
Мне кажется я видел на видео что так можно...Но весь интернет прорыл все про метод onClick а он так как мне надо не работает...но может я что не так делаю...прошу совета...или так не возможно?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2018, 12:52
Ответы с готовыми решениями:

Кликнуть мышью когда она как "палец"
Здравствуйте, подскажите пожалуйста как кликнуть мышью когда она находиться в...

Как сделать, чтобы информация в посте выводилась только тогда, когда она заполнена?
В шаблоне сайта недвижимости при создании поста есть поля для ввода информации...

Как сделать цикл, который будет выполнятся только когда происходит нажатие на кнопку?
Помогите, не знаю как сделать цикл, который будет выполнятся только когда...

Перекрасить кнопку пока она нажата
Возможно ли как то сделать, что пока будет нажата кнопка на форме - у нее будет...

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

4
korshun84
87 / 86 / 23
Регистрация: 08.07.2014
Сообщений: 533
25.05.2018, 12:53 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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.MotionEvent;
import android.widget.Button;
 
import java.util.concurrent.TimeUnit;
 
public class MainActivity2
        extends AppCompatActivity {
 
    private final int[] x = {0};
    private boolean isTouched = false;
 
    @SuppressLint({"ClickableViewAccessibility", "NewApi"})
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
 
        Button button = findViewById(R.id.btn);
 
        button.setOnTouchListener((v, event) -> {
 
            isTouched = (event.getAction() == MotionEvent.ACTION_DOWN);
 
            if(isTouched) {
                new Counter().execute();
            }
            else {
                new Counter().cancel(true);
            }
 
            return false;
        });
    }
    
    class Counter
        extends AsyncTask<Void, Void, Void> {
 
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
        }
 
        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            Log.d("mylog", "onPostExecute");
            x[0] = 0;
            isTouched = false;
        }
 
        @Override
        protected Void doInBackground(Void... voids) {
            while (isTouched) {
                if(isCancelled()) {
                    Log.d("mylog", "isCancelled");
                    x[0] = 0;
                    isTouched = false;
                    break;
                }
                Log.d("mylog", "int: " + String.valueOf(++x[0]));
                try {
                    TimeUnit.MILLISECONDS.sleep(50);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            return null;
        }
    }
}
0
ExFau$t
638 / 538 / 122
Регистрация: 08.05.2012
Сообщений: 2,707
25.05.2018, 13:32 3
Изящнее через rxjava2.
0
korshun84
87 / 86 / 23
Регистрация: 08.07.2014
Сообщений: 533
25.05.2018, 14:13 4
Цитата Сообщение от ExFau$t Посмотреть сообщение
Изящнее через rxjava2.
Примерчик бы
0
demixdn
310 / 255 / 79
Регистрация: 31.10.2016
Сообщений: 619
25.05.2018, 15:01 5
Еще так можно
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
final GestureDetector upDownGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){
            @Override
            public boolean onSingleTapUp(MotionEvent e) {
                onUpAction();
                return true;
            }
 
            @Override
            public boolean onDown(MotionEvent e) {
                onDownAction();
                return true;
            }
        });
        myButton.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                return upDownGestureDetector.onTouchEvent(event);
            }
        });
1
25.05.2018, 15:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2018, 15:01

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

Как сделать кнопку "Наверх", но чтобы она показывалась только при наведении курсора в правый нижний угол?
Здравствуйте, подскажите пожалуйста:read:, как сделать кнопку &quot;Наверх&quot; но чтобы...

Как определить, что на текстовом поле нажата клавиша Enter и выполнить какое либо действие?
Как определить, что на текстовом поле нажата клавиша Enter и выполнить какое...


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

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

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