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。我会发布我的活动,让你知道我在说什么。编辑好的,我用更多信息编辑了我的问题。我希望通过编辑我的面板类最终可以访问这些附加组件。编辑:或者,由于您只有一个额外的“规则”,您可以将其作为额外参数传递。这应该可以工作,但我找到了一种更简单的方法来完成我想做的事情。我将编辑我自己的问题以显示我所做的