Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
1

Как правильно обработать onTouchListener

23.01.2017, 15:35. Показов 1206. Ответов 3

Author24 — интернет-сервис помощи студентам
В моем коде обработчик прикосновений работает как onClickListener. Помогите исправить. Нужно сделать так, чтоб при прикосновении на ImageButton команды выполнялись непрерывно .
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class MainActivity extends AppCompatActivity {
private static final String TAG="MainActivity";
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final SMCustomView speedometer = (SMCustomView) findViewById(R.id.Speedometer);
    ImageButton increaseSpeed = (ImageButton) findViewById(R.id.IncreaseSpeed);
    ImageButton decreaseSpeed = (ImageButton) findViewById(R.id.DecreaseSpeed);
    increaseSpeed.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN){
 
                speedometer.onSpeedChanged(speedometer.getmCurrentSpeed()+5);
                return true;
            }
            return false;
        }
 
    });
}
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.01.2017, 15:35
Ответы с готовыми решениями:

OnTouchListener
Button start = (Button) findViewById(R.id.Start); start.setOnTouchListener(new...

OnTouchListener
Здравствуйте! Этот код работает как надо на Android 5.0+, но на 4.4 и ниже по какой-то причине не...

Создать OnTouchListener
bt11 = (Button)findViewById(R.id.bt11); bt11.setOnTouchListener(myListener); Нужно создать...

Не работает OnTouchListener
Button start = (Button) findViewById(R.id.Start); start.setOnTouchListener(new OnTouchListener()...

3
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
23.01.2017, 16:07 2
Лучший ответ Сообщение было отмечено CrossoX как решение

Решение

типа такого
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
public class MainActivity extends AppCompatActivity {
 
    public static final int DELAY = 250;  // скорость поставить свою
    private ImageButton increaseSpeed;
    private SMCustomView speedometer;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        speedometer = (SMCustomView) findViewById(R.id.Speedometer);
 
        increaseSpeed = (ImageButton) findViewById(R.id.IncreaseSpeed);
        increaseSpeed.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent e) {
                switch (e.getAction()) {
                    case MotionEvent.ACTION_DOWN:
                        increaseSpeed.postDelayed(action, DELAY);
                        break;
                    case MotionEvent.ACTION_CANCEL:
                        increaseSpeed.removeCallbacks(action);
                        break;
                    case MotionEvent.ACTION_UP:
                        increaseSpeed.removeCallbacks(action);
                        break;
                }
                return false;
            }
        });
    }
 
    private final Runnable action = new Runnable() {
        @Override
        public void run() {
            speedometer.onSpeedChanged(speedometer.getmCurrentSpeed() + 5);
            increaseSpeed.postDelayed(action, DELAY);
        }
    };
}
1
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
23.01.2017, 16:27  [ТС] 3
Спасибо.поможете еще если можно?

Добавлено через 1 минуту
Паблито, а как написать для тормуза?ну чтоб во время газа +5 когда отпускаешь газ то -5 а когда нажимаешь на тормуз то -10
0
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
23.01.2017, 16:29 4
напишите приложение за меня - в другом разделе, тут желательно мозг иногда включать
код не сложный, можно подумать и самостоятельно его модифицировать
0
23.01.2017, 16:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.01.2017, 16:29
Помогаю со студенческими работами здесь

Image OnTouchListener crash
Делаю своё первое приложение под Android и столкнулся с следующей проблемой - программа вылетает...

OnTouchListener вне приложения (из сервиса)
Здравствуйте. Вопрос такой как слушать нажатия по экрану вне запущенного приложения например из...

OnTouchListener и толстый дрожащий палец :)
суть проблемы... жму в экран, двигаю, отпускаю, получаю события ACTION_DOWN, ACTION_UP,...

OnTouchListener для нескольких кнопок
Имеется Activity с девятью Button . Как прописать setOnTouchListener для всех , при этом не...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru