[英]How to Handle Multiple drops for multiple components in drag and drop ;in one function or class?
我有5個浮動按鈕,每個按鈕有5個監聽器。 我正在尋找一種方法來在一個類或函數中實現所有這5個偵聽器。請幫助我如何做到這一點。我希望將所有drop合並到一個類中時能正常工作
這是示例:
imageView1.setOnDragListener(new View.OnDragListener()
{
@Override
public boolean onDrag(View v, DragEvent event)
{
switch (event.getAction())
{
case DragEvent.ACTION_DRAG_STARTED:
{
Log.e("DRaG1","START");
return true;
}
case DragEvent.ACTION_DRAG_ENDED:
{
Log.e("DRaG1","ENDED");
return true;
}
case DragEvent.ACTION_DRAG_ENTERED:
{
Log.e("DRaG1","ETER");
return true;
}
case DragEvent.ACTION_DRAG_EXITED:
{
Log.e("DRaG1","EXIT");
return true;
}
case DragEvent.ACTION_DROP:
{
Log.e("DRaG1","DROP");
return true;
}
}
return false;
}
});
imageView2.setOnDragListener(new View.OnDragListener()
{
@Override
public boolean onDrag(View v, DragEvent event)
{
switch (event.getAction())
{
case DragEvent.ACTION_DRAG_STARTED:
{
Log.e("DRaG2","START");
return true;
}
case DragEvent.ACTION_DRAG_ENDED:
{
Log.e("DRaG2","ENDED");
return true;
}
case DragEvent.ACTION_DRAG_ENTERED:
{
Log.e("DRaG2","ETER");
return true;
}
case DragEvent.ACTION_DRAG_EXITED:
{
Log.e("DRaG2","EXIT");
return true;
}
case DragEvent.ACTION_DROP:
{
Log.e("DRaG2","DROP");
return true;
}
}
return false;
}
});
我自己編寫的代碼是在Main Activity中執行的: imageView1.setOnDragListener(dragListener); imageView2.setOnDragListener(dragListener);
imageView1.setOnDragListener(dragListener); imageView2.setOnDragListener(dragListener);
為Drag Listenrer創建一個類並調用它:
public class DragListener extends Activity implements View.OnDragListener {
@Override
public boolean onDrag(View v, DragEvent event)
{
final int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED: {
Log.e("DRaG2", "START");
return true;
}
case DragEvent.ACTION_DRAG_ENDED: {
Log.e("DRaG2", "ENDED");
return true;
}
case DragEvent.ACTION_DRAG_ENTERED: {
Log.e("DRaG2", "ETER");
return true;
}
case DragEvent.ACTION_DRAG_EXITED: {
Log.e("DRaG2", "EXIT");
return true;
}
case DragEvent.ACTION_DROP: {
if (v.getId() == R.id.imageView1)
{
ClipData.Item item = event.getClipData().getItemAt(0);
Log.e("ITEM", item.getText().toString());
Log.e("DRaG2", String.valueOf(v.getId()));
}
else if (v.getId() == R.id.imageView2)
{
ClipData.Item item = event.getClipData().getItemAt(0);
Log.e("ITEM", item.getText().toString());
Log.e("DRaG2", String.valueOf(v.getId()));
}
else if (v.getId() == R.id.imageView3)
{
ClipData.Item item = event.getClipData().getItemAt(0);
Log.e("ITEM", item.getText().toString());
Log.e("DRaG2", String.valueOf(v.getId()));
}
return true;
}
}
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.