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

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

Войти
Регистрация
Восстановить пароль
 
_Night_Scream_
75 / 74 / 8
Регистрация: 08.08.2013
Сообщений: 581
#1

Drag And Drop определение view - Программирование Android

18.10.2015, 11:51. Просмотров 209. Ответов 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
Android Drag and Drop в GridView
Не получается Drag & Drop Android
Android Drag and Drop способ реализации
Не могу реализовать условие Drag and Drop Android
Android Работа с drop down navigation в action bar
Отрисовка View Android
Движение View Android
Android XML vs View
View во фрагментах Android
Android Сериализация View
Android Тип view

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

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

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