Button 如何访问从主活动到surfaceview Android的变量?
我在主活动中有两个按钮,它们是在没有xml的情况下通过编程实现的。 按钮应该移动surfaceview上的位图,我如何才能做到这一点Button 如何访问从主活动到surfaceview Android的变量?,button,android-canvas,surfaceview,onclicklistener,translate-animation,Button,Android Canvas,Surfaceview,Onclicklistener,Translate Animation,我在主活动中有两个按钮,它们是在没有xml的情况下通过编程实现的。 按钮应该移动surfaceview上的位图,我如何才能做到这一点 here is one of the Buttons: Button1.setOnClickListener(this); } public void onClick(View v) { //I want to access variable x and y of surfaceview if (x==
here is one of the Buttons:
Button1.setOnClickListener(this);
}
public void onClick(View v) {
//I want to access variable x and y of surfaceview
if (x==230)
x=x +20;
invalidate();
}
如果希望将值传递回原始活动,则应使用startActivityForResult
然后,您可以在onActivityResult回调中访问它们如果您已经创建了
SurfaceView
的子类,其中包含x和y变量,那么最好的做法是为这些变量创建setter和getter(我称之为setPositionX()
而不是setX())
,因为SurfaceView
已经有了该方法):
在你的活动中:
private MySurfaceView mySurfaceView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Create SurfaceView and assign it to a variable.
mySurfaceView = new MySurfaceView(this);
// Do other initialization. Create button listener and other stuff.
button1.setOnClickListener(this);
}
public void onClick(View v) {
int x = mySurfaceView.getPositionX();
int y = mySurfaceView.getPositionY();
if (x == 230) {
mySurfaceView.setPositionX(x + 20);
}
invalidate();
}
请举一些例子
private MySurfaceView mySurfaceView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Create SurfaceView and assign it to a variable.
mySurfaceView = new MySurfaceView(this);
// Do other initialization. Create button listener and other stuff.
button1.setOnClickListener(this);
}
public void onClick(View v) {
int x = mySurfaceView.getPositionX();
int y = mySurfaceView.getPositionY();
if (x == 230) {
mySurfaceView.setPositionX(x + 20);
}
invalidate();
}