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

Обработка свайпа в ListView - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Кто чем пользуется для разработки приложений под Андроид? http://www.cyberforum.ru/android-dev/thread1066401.html
Всем доброго времени суток! Вопрос немного нубный, но тем не менее... Хотел бы начать разрабатывать ПО под Андройд. Вроде взял хорошую книгу П. Дейтела "Android для программистов Создаём приложения" издательство Питер. Читаю много в этой книге...вроде понимание появляется что и как... хотел что-то руками сдлать наипростейшее типа "Hello Word"))
Программирование Android Шаринг Facebook Привет. Помогите с шарингом Facebook. Как сделать авторизацию. Где должен быть app id? http://www.cyberforum.ru/android-dev/thread1066189.html
Программирование Android Правильное закрытие курсора
Как правильно закрыть Cursor? Если делать так: .... String from = {"name","count"}; intto ={R.id.backpack_text_1, R.id.backpack_text_2}; Cursor AllData = databaseHelper.getData("coil"); ListAdapter adapter= new SimpleCursorAdapter(Backpack.this,R.layout.backpack_list_item,AllData,from,to); myListView.setAdapter(adapter); AllData.close();//!
Запомнить координаты прокрутки списка Программирование Android
В Activity1 список ListView обновляется в onResume(). При выборе элемента списка открывается Activity2, в котором отображается выбранный объект. Также на Activity1 есть возможность создать новый объект (в Activity2) и записать его. После возврата в Activity1 список обновляется (onResume). Но есть неудобство в том, что при возврате в Activity1 пользователь каждый раз оказывается в начале...
Программирование Android Возможно ли сделать анимацию под темп музыки? http://www.cyberforum.ru/android-dev/thread1066049.html
Возможно ли сделать скорость анимации под темп играющей музыки в этом приложении?
Программирование Android Обфускация на Eclipse. Какова последовательность действий Кто делал обфускацию на Eclipse - опишите последовательность ваших действий. Добавлено через 1 час 8 минут Интересуют проблемы с которыми стыкались при обфускации и их решение. Буду благодарен за любые советы. Например, тонкости настройки файла конфигурации. Добавлено через 4 часа 1 минуту Вот мой вариант, возможно кому-то поможет. proguard.txt ##---------------Begin: proguard... подробнее

Показать сообщение отдельно
Severomor1
0 / 0 / 0
Регистрация: 09.01.2014
Сообщений: 36

Обработка свайпа в ListView - Программирование Android

09.01.2014, 10:28. Просмотров 2495. Ответов 1
Метки (Все метки)

Добрый день,
Мне нужно сделать удаление элементов из ListView по свайпу. Делаю так:
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
lv.setOnTouchListener(new View.OnTouchListener() {
            float x1 = Float.NaN, y1 = Float.NaN, x2=Float.NaN, y2=Float.NaN;
            static final int delta=40;
            //int ItemPosition;
 
            @Override
            public boolean onTouch(View view, MotionEvent event) {
                switch (event.getAction()){
                    case MotionEvent.EDGE_LEFT:
                        BottomSwipeDetected=true;
                        break;
 
                    case MotionEvent.ACTION_DOWN:
                        x1=event.getX();
                        y1=event.getY();
                        return false;
 
 
                    case MotionEvent.ACTION_UP:
                        x2=event.getX();
                        y2=event.getY();
                        itemPosition=lv.pointToPosition((int) x2, (int) y2);
                        LeftSwipeDetected=false;
                        RightSwipeDetected=false;
                        if (x2-x1>delta){
                            RightSwipeDetected=true;
 
                         //   return false;
                        }
                        else if (x1-x2>delta){
                            LeftSwipeDetected=true;
 
                         //   return false;
                        }
 
                    default:
                        return false;
                }
                return false;
            }
 
        });
 
@Override
    protected void onListItemClick(ListView lv, View v, int position, long id){
 
        if (LeftSwipeDetected){
            //Toast.makeText(this,"Left Swipe Detected", Toast.LENGTH_LONG).show();
            Animation animation= AnimationUtils.loadAnimation(this, R.anim.left_swipe_anim);
            animation.setAnimationListener(new SwipeAnimationListener(position));
            v.startAnimation(animation);
            LeftSwipeDetected=false;
        }
        else if (RightSwipeDetected){
            Intent intent=new Intent(this, Edit.class);
            startActivityForResult(intent, ADD_CODE);
            overridePendingTransition(R.anim.swipe_new_activity,R.anim.alfa_old_activity);
        }
 
        else {
            itemPosition=position;
            String txt=list.get(itemPosition).Text;
            Intent intent=new Intent(this, Edit.class);
            intent.putExtra("text",txt);
            startActivityForResult(intent, EDIT_CODE);
        }
 
    }
В принципе, оно работает. Но как то туго. Через раз или через два. То есть если просто слегка мазнуть пальцем по экрану (как в клиенте гуглопочты например) - то onListItemClick не срабатывает. Надо нормально так нажать пальцем на элемент списка и провести - тогда сработает. onTouchListener работает без проблем. Хотел было в нем сделать вызов анимации и удаление айтема - но не знаю, как в нем получить ссылку на конкретный View, по которому делается свайп. Посоветуйте, как быть.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru