2012-11-02 3 views
0

У меня есть несколько видов, которые перетаскиваются вокруг, каждый из которых представляет эмоции. идея состоит в том, чтобы каждое представление отправляло запись в базу данных, которая варьируется в зависимости от того, какое представление перетаскивается.Прикрепление данных к различным представлениям при перетаскивании

мнения созданы здесь:

_root = (ViewGroup)findViewById(R.id.root); 

_view = new ImageView(this); 
_view.setImageResource(R.drawable.smile); 
_view2 = new ImageView(this); 
_view2.setImageResource(R.drawable.frown); 



RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 50); 
layoutParams.leftMargin = 250; 
layoutParams.topMargin = 250; 
layoutParams.bottomMargin = -250; 
layoutParams.rightMargin = -250; 
_view.setLayoutParams(layoutParams); 
_view.setOnTouchListener(this); 

RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(150, 50); 
layoutParams2.leftMargin = 250; 
layoutParams2.topMargin = 500; 
layoutParams2.bottomMargin = -250; 
layoutParams2.rightMargin = -250; 
_view2.setLayoutParams(layoutParams2); 
_view2.setOnTouchListener(this); 
_root.addView(_view); 
_root.addView(_view2); 

} 

И движение и сопротивление определяется здесь:

public boolean onTouch(View view, MotionEvent event) { 
    final int X = (int) event.getRawX(); 
    final int Y = (int) event.getRawY(); 
    switch (event.getAction() & MotionEvent.ACTION_MASK) { 
     case MotionEvent.ACTION_DOWN: 
      RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams(); 
      _xDelta = X - lParams.leftMargin; 
      _yDelta = Y - lParams.topMargin; 
      break; 
     case MotionEvent.ACTION_UP: 
      Intent intent = new Intent(this, Exit_Activity.class); 
     startActivity(intent); 
      break; 
     case MotionEvent.ACTION_POINTER_DOWN: 
      break; 
     case MotionEvent.ACTION_POINTER_UP: 
      break; 
     case MotionEvent.ACTION_MOVE: 
      RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams(); 
      layoutParams.leftMargin = X - _xDelta; 
      layoutParams.topMargin = Y - _yDelta; 
      layoutParams.rightMargin = -250; 
      layoutParams.bottomMargin = -250; 
      view.setLayoutParams(layoutParams); 
      break; 
    } 
    _root.invalidate(); 
    return true; 
} 

} 

Как вы можете видеть, ACTION_UP в настоящее время направляет пользователя к следующей операции, независимо от того, который просматривается. Каков наилучший способ, чтобы приложение различало представления?

ответ

0

ID комплекта для индивидуального просмотра. Извлеките идентификатор, если щелкнуть его. ID - уникальная идентификация для каждого вида. Для того, чтобы установить идентификатор:

view.setId(x); 

При щелчке получить идентификатор:

id = view.getId(); 
+0

Спасибо большое, просто интересно, если я, если оператор должен использовать для определения действия, предпринятые на основе идентификатора извлеченной или если есть более красноречивый способ сделать это. Еще раз спасибо. – user1398478

Смежные вопросы