拖动名为查看错误的按钮以及如何解决它
Drag button called view whats wrong and how to solve it
在这种情况下,大家好,请帮助我
我想拖动一个名为 view 的按钮,
我设置了代码,就像你在下面看到的那样,但我仍然不能拖动它,你能给我一个很好的解释的困难解决方案
public class MainActivity extends Activity {
private Timer _timer = new Timer();
private LinearLayout linear1;
private Button view;
private Button btn2;
private Button widgets;
private TextView textview1;
private TimerTask mm;
@Override
protected void onCreate(Bundle _savedInstanceState) {
super.onCreate(_savedInstanceState);
setContentView(R.layout.main);
initialize();
initializeLogic();
}
private void initialize() {
linear1 = (LinearLayout) findViewById(R.id.linear1);
view = (Button) findViewById(R.id.view);
btn2 = (Button) findViewById(R.id.btn2);
widgets = (Button) findViewById(R.id.widgets);
textview1 = (TextView) findViewById(R.id.textview1);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.setOnDragListener( new View.OnDragListener() {
PointF DownPT = new PointF();
PointF StartPT = new PointF();
@Override public boolean onDrag(View v, android.view.DragEvent event) {
int dragEvent = event.getAction();
switch (dragEvent) {
case android.view.DragEvent.ACTION_DRAG_STARTED :
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_LOCATION :
PointF mv = new PointF( event.getX() - DownPT.x, event.getY() - DownPT.y);
view.setX((int)(StartPT.x+mv.x)); view.setY((int)(StartPT.y+mv.y));
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_ENTERED :
case android.view.DragEvent.ACTION_DRAG_EXITED :
break;
case android.view.DragEvent.ACTION_DROP : break;
default : break;
}
return true;
}
});
我需要一个很好的解释伙计们,因为我需要理解这个问题,谢谢你花时间帮助我!
我需要知道有什么不同
解决这个问题的方法
在 onClick 方法之外实现:-
view.setOnDragListener( new View.OnDragListener() {
PointF DownPT = new PointF();
PointF StartPT = new PointF();
@Override public boolean onDrag(View v, android.view.DragEvent event) {
int dragEvent = event.getAction();
switch (dragEvent) {
case android.view.DragEvent.ACTION_DRAG_STARTED :
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_LOCATION :
PointF mv = new PointF( event.getX() - DownPT.x, event.getY() - DownPT.y);
view.setX((int)(StartPT.x+mv.x)); view.setY((int)(StartPT.y+mv.y));
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_ENTERED :
case android.view.DragEvent.ACTION_DRAG_EXITED :
break;
case android.view.DragEvent.ACTION_DROP : break;
default : break;
}
return true;
}
});
不在 onClick() 内。希望这有帮助。
在这种情况下,大家好,请帮助我 我想拖动一个名为 view 的按钮, 我设置了代码,就像你在下面看到的那样,但我仍然不能拖动它,你能给我一个很好的解释的困难解决方案
public class MainActivity extends Activity {
private Timer _timer = new Timer();
private LinearLayout linear1;
private Button view;
private Button btn2;
private Button widgets;
private TextView textview1;
private TimerTask mm;
@Override
protected void onCreate(Bundle _savedInstanceState) {
super.onCreate(_savedInstanceState);
setContentView(R.layout.main);
initialize();
initializeLogic();
}
private void initialize() {
linear1 = (LinearLayout) findViewById(R.id.linear1);
view = (Button) findViewById(R.id.view);
btn2 = (Button) findViewById(R.id.btn2);
widgets = (Button) findViewById(R.id.widgets);
textview1 = (TextView) findViewById(R.id.textview1);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
view.setOnDragListener( new View.OnDragListener() {
PointF DownPT = new PointF();
PointF StartPT = new PointF();
@Override public boolean onDrag(View v, android.view.DragEvent event) {
int dragEvent = event.getAction();
switch (dragEvent) {
case android.view.DragEvent.ACTION_DRAG_STARTED :
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_LOCATION :
PointF mv = new PointF( event.getX() - DownPT.x, event.getY() - DownPT.y);
view.setX((int)(StartPT.x+mv.x)); view.setY((int)(StartPT.y+mv.y));
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_ENTERED :
case android.view.DragEvent.ACTION_DRAG_EXITED :
break;
case android.view.DragEvent.ACTION_DROP : break;
default : break;
}
return true;
}
});
我需要一个很好的解释伙计们,因为我需要理解这个问题,谢谢你花时间帮助我! 我需要知道有什么不同 解决这个问题的方法
在 onClick 方法之外实现:-
view.setOnDragListener( new View.OnDragListener() {
PointF DownPT = new PointF();
PointF StartPT = new PointF();
@Override public boolean onDrag(View v, android.view.DragEvent event) {
int dragEvent = event.getAction();
switch (dragEvent) {
case android.view.DragEvent.ACTION_DRAG_STARTED :
DownPT.x = event.getX();
DownPT.y = event.getY();
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_LOCATION :
PointF mv = new PointF( event.getX() - DownPT.x, event.getY() - DownPT.y);
view.setX((int)(StartPT.x+mv.x)); view.setY((int)(StartPT.y+mv.y));
StartPT = new PointF( view.getX(), view.getY() ); break;
case android.view.DragEvent.ACTION_DRAG_ENTERED :
case android.view.DragEvent.ACTION_DRAG_EXITED :
break;
case android.view.DragEvent.ACTION_DROP : break;
default : break;
}
return true;
}
});
不在 onClick() 内。希望这有帮助。