我可以用什么来跟踪按下哪个按钮?

时间:2011-06-06 19:24:11

标签: java android variables

我有一个按钮可以进入游戏模式。所有按钮都会启动相同的活动,但规则和物理会根据您触摸的内容而改变。

我想跟踪按下的按钮,以便我知道人们是否选择了经典模式或训练模式,并相应地设置规则。我该怎么做?

以下是我从菜单中开始游戏模式的方法:

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);
        }

这就是它的所在:

public class StartGame extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(new Panel (this));      //Start the game

    }
}

现在我需要我的Panel类可以访问这些附加功能,这是一个SurfaceView。


哦,我明白了:

我找到了一种方法,可以在更少的步骤中完成我想要的工作

public class Global{
    public static int rules = 0;
}

现在我可以通过键入Global.rules

随时随地访问这些规则

事后看来,这似乎很简单。

3 个答案:

答案 0 :(得分:2)

您可以为开始活动的Intent添加“额外”。

Intent intent = new Intent(context, StartGame.class);
intent.putExtra(String key, X value);
startActivity(intent);

然后,您可以通过以下方式在StartGame活动中获取这些额外内容:

Bundle extras = getIntent().getExtras();
X value = extras.getX(String key);

其中X是某种类型的数据(例如,String,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
    }
}

并更改Panel构造函数以接受Bundle参数,因此您在初始化时具有这些值。让我知道它是如何工作的。

答案 1 :(得分:0)

你应该使用一个librairy来完成所有这些。否则你将不得不这样做 1)收集统计数据 2)将它们上传到你可以查看结果的地方,这部分可能很难自己做

但谷歌分析已经为您完成了这一切。也许其他人也...... 这是starter page

此致  斯特凡

答案 2 :(得分:0)

我找到了一种方法,可以在更少的步骤中完成我想要的工作

public class Global{
    public static int rules = 0;
}

现在我可以通过键入Global.rules

随时随地访问这些规则