Java 我可以用什么来跟踪哪个按钮被按下?
我有一个按钮,我触摸进入游戏模式。所有按钮都启动相同的活动,但规则和物理会根据您触摸的内容而改变 我想跟踪按下的按钮,这样我就可以知道人们是选择了经典模式还是训练模式,并相应地设置规则。我该怎么做 以下是我如何从菜单启动游戏模式:Java 我可以用什么来跟踪哪个按钮被按下?,java,android,variables,Java,Android,Variables,我有一个按钮,我触摸进入游戏模式。所有按钮都启动相同的活动,但规则和物理会根据您触摸的内容而改变 我想跟踪按下的按钮,这样我就可以知道人们是选择了经典模式还是训练模式,并相应地设置规则。我该怎么做 以下是我如何从菜单启动游戏模式: MenuElement classic = mElements.get(0); MenuElement training = mElements.get(1); if(touchX > classic.mX && to
MenuElement classic = mElements.get(0);
MenuElement training = mElements.get(1);
if(touchX > classic.mX && touchX < classic.mX + classic.mBitmap.getWidth()
&& touchY > classic.mY && touchY < classic.mY + classic.mBitmap.getHeight())
{
aux = "Starting game";
Context context = com.Juggle2.Menu.this.getContext();
Intent intent = new Intent(context, StartGame.class);
intent.putExtra("rule", 1);
context.startActivity(intent);
}
if(touchX > training.mX && touchX < training.mX + classic.mBitmap.getWidth()
&& touchY > training.mY && touchY < training.mY + training.mBitmap.getHeight())
{
aux = "Starting training";
Context context = com.Juggle2.Menu.this.getContext();
Intent intent = new Intent(context, StartGame.class);
intent.putExtra("rule", 2);
context.startActivity(intent);
}
现在,我需要我的Panel类可以访问这些附加组件,这是一个SurfaceView
哦,我明白了:
我找到了一种方法,用更少的步骤做我想做的事情
public class Global{
public static int rules = 0;
}
public class Global{
public static int rules = 0;
}
现在我可以随时随地通过键入Global.rules
事后看来,这似乎很简单。你应该使用一个图书馆来完成所有这些。否则你将不得不 1) 收集统计数据 2) 将它们上传到某个地方,在那里你可以查看结果,这部分可能很难自己完成 但是google analytics已经为您完成了这一切。也许其他人也是。。。 这是你的电话号码 问候,, Stéphane您可以在您的
意图中添加一个“额外”来开始您的活动
Intent intent = new Intent(context, StartGame.class);
intent.putExtra(String key, X value);
startActivity(intent);
然后,您可以通过以下方式在StartName活动中获得这些额外信息:
Bundle extras = getIntent().getExtras();
X value = extras.getX(String key);
其中X是某种类型的数据(例如,字符串、int、long、double等)
更新
对不起,我没有仔细阅读你的评论。以下是一些可能对你有用的东西:
public class StartGame extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
Bundle extras = getIntent().getExtras();
Panel mPanel = new Panel(this, extras);
setContentView(mPanel); //Start the game
}
}
并将面板构造函数更改为接受Bundle参数,以便在初始化时获得这些值。让我知道它是如何工作的。我找到了一种方法,可以用更少的步骤做我想做的事情
public class Global{
public static int rules = 0;
}
public class Global{
public static int rules = 0;
}
现在我可以随时随地通过键入Global来访问这些规则。规则
我不想为了度量目的而跟踪按下的按钮,我想跟踪按下的按钮,这样我就可以知道人们是否选择了Classic
模式或Training
模式,并据此设置规则谢谢,但我的活动只是启动SurfaceView,这就是我需要这些变量的地方。我怎样才能把这些变量再传递一个类呢?再次感谢,但我不会再传递一个类了。该活动仅将内容视图设置为我的SurfaceView。我会发布我的活动,让你知道我在说什么。编辑好的,我用更多信息编辑了我的问题。我希望通过编辑我的面板类最终可以访问这些附加组件。编辑:或者,由于您只有一个额外的“规则”,您可以将其作为额外参数传递。这应该可以工作,但我找到了一种更简单的方法来完成我想做的事情。我将编辑我自己的问题以显示我所做的