Android 如何计算其他活动中的总价值?

Android 如何计算其他活动中的总价值?,android,Android,我需要对第二个活动中的值求和。我不能正确地算出总数。有人能帮我吗 final EditText et = (EditText)findViewById(R.id.etwalkingburned); final EditText ed = (EditText)findViewById(R.id.etrunningburned); mcardiototalbutton = (Button)findViewById(R.id.cardiototalbutton); mcardiototalbutton

我需要对第二个活动中的值求和。我不能正确地算出总数。有人能帮我吗

final EditText et = (EditText)findViewById(R.id.etwalkingburned);
final EditText ed = (EditText)findViewById(R.id.etrunningburned);
mcardiototalbutton = (Button)findViewById(R.id.cardiototalbutton);
mcardiototalbutton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        int walkingburned = Integer.parseInt(et.getText().toString());
            int runningburned = Integer.parseInt(ed.getText().toString());
            Intent myIntent = new Intent(getApplicationContext(),TotalActivity.class);
            myIntent.putExtra("CardioTotal",walkingburned);
            myIntent.putExtra("CardioTotal",runningburned);
            startActivity(myIntent);
        }
    });
}

public class TotalActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.totalactivity);

    Bundle extras = getIntent().getExtras();
    int walkingburned = extras.getInt("CardioTotal");
    int runningburned = extras.getInt("CardioTotal");
    int cardiototal = walkingburned + runningburned;

    TextView tv = (TextView)findViewById(R.id.cardiototalresult);

    walkingburned = walkingburned + 0;
    runningburned = runningburned + 0;
    cardiototal = walkingburned + runningburned;

    tv.setText("Cals.:" + cardiototal);
}

问题在于你如何在你的意图中加入和获得额外的东西

myIntent.putExtra("CardioTotal",walkingburned);
myIntent.putExtra("CardioTotal",runningburned);
将一个额外的视为键值对。每次调用
putExtra
时,第一个参数应该是不同的字符串,否则将覆盖已输入的值。因此,基本上您输入了
walkingburned
值,然后使用
runningburn
值重写它,因为您使用了相同的键字符串

同样,在第二个活动中,您需要通过其唯一的字符串“key”引用值,否则您将只获得相同的值两次

在这种情况下,剥猫皮的方法不止一种。更具体地说,您可以在第一个活动中进行加法,并且只存储一个额外值(总和),以避免多个额外值的混淆。但是,我认为,了解附加功能和意图是如何工作的,这会让你受益更多

对于初学者来说,您可以简单地调用与变量名类似的字符串,而不是为每个额外变量使用
“CardioTotal”
。这就是我所做的,在我看来,这将使您的代码更容易理解

myIntent.putExtra("Walking Burned",walkingburned);
myIntent.putExtra("Running Burned",runningburned);
在第一个参数中输入什么字符串并不重要,只要知道它们应该表示不同的值

然后你需要做的第二个改变是如何从意图中获得额外的东西

int walkingburned = extras.getInt("CardioTotal");
int runningburned = extras.getInt("CardioTotal");
您当前所做的是检索两个单独变量的相同值(您使用的是相同的键字符串,因此它是相同的值)。因此,您将看到的值是
runningburn
值的两倍

现在,由于您的意图中有两个不同的字符串用于两个不同的变量,您可以说:

int walkingburned = extras.getInt("Walking Burned");
int runningburned = extras.getInt("Running Burned");
代码的其余部分很好。 在TotalActivity中也不需要这些行

walkingburned = walkingburned + 0;
runningburned = runningburned + 0;
抱歉,这是一个很长的回答,但我想解释一些事情


希望有帮助

将这些edittext的inputtype设置为number。将它们添加到您要获取它们的活动中,并将总和发送到下一个活动您在将您的值放入Intent extras时使用了“CardioTotal”两次作为键。使用不同的键。我还注意到您在第一次
活动的
onClick(…)
方法中使用了
getApplicationContext()
。应用程序
上下文
只能在某些情况下用于启动
活动
(请参阅本文中的上下文功能-)。相反,请使用第一个
活动的
上下文
,例如
MyActivity。此
。非常感谢您的帮助