У меня есть 3 контейнера, один содержит несколько ImageViews
, которые пользователь может перетащить в 2 других контейнера. Для этого мне нужно определить, какой из ImageView
был удален. Я думал, что это делает getId()
, но он извлекает Id целевого контейнера, что имеет смысл.Извлечь идентификатор ImageView при перетаскивании
В коде я использую img_select
, чтобы попытаться сохранить значение id ImageView
. Любой пример того, как это сделать?
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
// do nothing
img_select = v.getId();
break;
case DragEvent.ACTION_DRAG_ENTERED:
v.setBackground(enterShape);
break;
case DragEvent.ACTION_DRAG_EXITED:
v.setBackground(normalShape);
break;
case DragEvent.ACTION_DROP:
// I tried to do it here. I get the id of the container
img_select = v.getId();
View view = (View) event.getLocalState();
ViewGroup owner = (ViewGroup) view.getParent();
owner.removeView(view);
RelativeLayout container = (RelativeLayout) v;
container.addView(view);
view.setVisibility(View.VISIBLE);
break;
case DragEvent.ACTION_DRAG_ENDED:
v.setBackground(normalShape);
default:
break;
}
return true;
}
Вы пытались использовать android: tag? http://developer.android.com/reference/android/view/View.html#attr_android:tag – fasteque