在setOnDragListener中使用两个按钮,可以通过以下步骤实现:
以下是一个示例代码:
Button button1 = findViewById(R.id.button1);
Button button2 = findViewById(R.id.button2);
button1.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 设置拖拽阴影
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
// 开始拖拽
v.startDrag(null, shadowBuilder, v, 0);
return true;
}
});
button2.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// 设置拖拽阴影
View.DragShadowBuilder shadowBuilder = new View.DragShadowBuilder(v);
// 开始拖拽
v.startDrag(null, shadowBuilder, v, 0);
return true;
}
});
button1.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
// 拖拽事件开始
break;
case DragEvent.ACTION_DROP:
// 拖拽事件结束
// 获取拖拽事件的数据
ClipData clipData = event.getClipData();
// 获取关联的按钮
Button sourceButton = (Button) event.getLocalState();
// 获取关联的数据
String data = clipData.getItemAt(0).getText().toString();
if (sourceButton == button1) {
// 拖拽到button1上的操作
// 根据数据执行相应的操作
} else if (sourceButton == button2) {
// 拖拽到button2上的操作
// 根据数据执行相应的操作
}
break;
}
return true;
}
});
button2.setOnDragListener(new View.OnDragListener() {
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (action) {
case DragEvent.ACTION_DRAG_STARTED:
// 拖拽事件开始
break;
case DragEvent.ACTION_DROP:
// 拖拽事件结束
// 获取拖拽事件的数据
ClipData clipData = event.getClipData();
// 获取关联的按钮
Button sourceButton = (Button) event.getLocalState();
// 获取关联的数据
String data = clipData.getItemAt(0).getText().toString();
if (sourceButton == button1) {
// 拖拽到button1上的操作
// 根据数据执行相应的操作
} else if (sourceButton == button2) {
// 拖拽到button2上的操作
// 根据数据执行相应的操作
}
break;
}
return true;
}
});
这是一个简单的示例,你可以根据实际需求进行修改和扩展。
腾讯技术创作特训营第二季第3期
算法大赛
Elastic Meetup Online 第五期
API网关系列直播
云+社区技术沙龙[第9期]
云原生正发声
Elastic 实战工作坊
云+社区技术沙龙[第16期]
领取专属 10元无门槛券
手把手带您无忧上云