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

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

Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 533
#1

Drag And Drop определение view - Android

18.10.2015, 11:51. Просмотров 140. Ответов 2
Метки нет (Все метки)

Привет.

Каким образом передать информацию в событии DragEvent.ACTION_DROP что за view тянется.
Допустим есть панель с различными view компонентами (button,imageview,seekbar или кастомный) с этой панели я вытягиваю на другой layout эти компоненты.
На Layout стоит слушатель и он знает когда к нему притащили новый view с панели, но он не знает что это за view и кого создавать, вот не могу понять каким образом получить эту информацию.

В принципе нашел 2 способа, но мне кажется костыльных.
Первый с ClipData
Java
1
2
3
4
5
6
7
8
9
10
   
 ClipData data = ClipData.newPlainText("text","WWW");
 View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
 v.startDrag(data, shadowBuilder, v, 0);
 
-----------------------------------------------------------
 
  case DragEvent.ACTION_DROP:
     String item = event.getClipData().getItemAt(0).getText().toString();// В строке item будет "WWW"
...
Таким образом получилось передать только одну строку

Второй способ

Java
1
2
3
case DragEvent.ACTION_DROP:
 View view = (View) event.getLocalState();
String str = view.getClass().toString();//тут полный путь до класса
Здесь полный и длинный путь до класса, хотяб узнать только бы конечный класс чтобы потом через if проверить, но а если 100 разных компонентов ....

Буду благодарен за любую информацию.

Добавлено через 10 минут
Наверное view.getClass().getSimpleName() ко второму способу.

Добавлено через 13 часов 28 минут
Попробую по другому спросить.

Есть классы
CustomButton extends Button с методом getA(int i)
CustomButton2 extends Imageview с методом getA(boolean b)
CustomButton3 extends ToggleButton с методом getA(String s)

Но у каждого метод getA() выполняет разные действия.

Есть событие onClick

Java
1
2
3
4
@Override
        public void onClick(View view) {
            
        }
Как узнать какой custom button кликнули и соответственно вызвать getA(...) своего класса.

Что то должно быть простое, но не догоню.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2015, 11:51     Drag And Drop определение view
Посмотрите здесь:

Android List - Drag and Drop
Не получается Drag & Drop Android
Android XML vs View
Отрисовка View Android
Android Drag and Drop способ реализации
Не могу реализовать условие Drag and Drop Android
Android Тип view
Движение View Android
View во фрагментах Android
Android Drag and Drop в GridView
Android Сериализация View
Android Красивые View

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DemD10
58 / 47 / 12
Регистрация: 03.09.2013
Сообщений: 426
18.10.2015, 23:10     Drag And Drop определение view #2
Мог не совсем понять суть дела, но, было у меня что-то подобное, я делал кастомные вьюхи, да даже не кастомные а добавлял к ним id и потом по нему сверялся. По нажатию на вьюху, выдавало id и по заранее заданному алгоритму сверялся с ним.
_Night_Scream_
55 / 67 / 7
Регистрация: 08.08.2013
Сообщений: 533
18.10.2015, 23:17  [ТС]     Drag And Drop определение view #3
DemD10, да, спасибо, сегодня я догадался сделать через id, просто изначально растерялся т.к. компоненты у меня динамически создаются.
Yandex
Объявления
18.10.2015, 23:17     Drag And Drop определение view
Ответ Создать тему
Опции темы

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