0

首先,按钮很少。

我为 onClick 方法中的所有按钮设置了一个开关盒。

我想为所有按钮执行不同的任务,例如

对于添加按钮,我想显示加法问题,减法问题等。

但是我想在单击按钮时开始相同的活动,我的意思是我有一个计数器类,它应该在实际问题开始显示之前开始。

因此,单击我想要启动该计数器活动的任何按钮,然后显示问题。

@Override
public void onClick(View v) {

    Intent Counter = new Intent(this, TYS_Counter.class);
    startActivity(Counter);

    switch (v.getId()) {

    case R.id.BAddition:

        break;
    case R.id.BSubtraction:

        break;
    case R.id.BMultiplication:

        break;
    case R.id.BDivision:

        break;
    case R.id.BAll:

        break;
    }

}

我已经这样做了,这是否正确,我不这么认为,所以请指导我。

编辑:

我希望当用户单击任何按钮时 3 2 1 的计时器开始,当它完成时,有问题的活动开始。

谢谢

4

1 回答 1

0

从我认为您所说的来看,您希望在计时器到期后显示问题。你有几个选择。一个是你可以使用

Intent Counter = new Intent(this, TYS_Counter.class);
startActivityForResult(Counter);  // notice the change here

然后,当您的计时器Activity完成时,它可以使用setResult()并向您返回一个值,onActivityResult()然后您可以Activity根据从计时器发回的内容来提出您想要的问题Activity

如果您想Activity在计数器到期时开始一个新的,那么您可以像这样更改您的代码

    @Override
public void onClick(View v) {

    Intent Counter = new Intent(this, TYS_Counter.class);

    switch (v.getId()) {

    case R.id.BAddition:
        counter.putExtra("key", "addition");
        break;
    case R.id.BSubtraction:
        counter.putExtra("key", "subtraction");
        break;
    case R.id.BMultiplication:
        counter.putExtra("key", "multiplication");
        break;
    case R.id.BDivision:
        counter.putExtra("key", "division");
        break;
    case R.id.BAll:
        counter.putExtra("key", "whateverThisIs");
        break;
    }
startActivity(Counter);

}

然后,当您的计数器Activity完成时,您可以使用额外发送来告诉它从哪个Activity开始

于 2013-05-28T22:40:45.193 回答