我要做的是在活动中保存一些数字,以便在活动再次开始时将它们添加到更多数字中。
我尝试在暂停时保存号码,然后在恢复时将它们添加到新号码中,它有点工作,但是当我旋转手机时,它再次添加保存的号码,有什么更好的方法来解决这个问题
一点代码
if (getIntent().hasExtra("ResultBl100")) {
editbl.setText(bl100 + "");
numberOfBl = Integer.parseInt(editbl.getText().toString());
totalSd = (float) (numberOfBl * 0.0024);
editsd.setText(String.format("%.1f", totalSd));
b = Float.parseFloat(editsd.getText().toString());
totalCt = (int) Math.ceil(b * 7);
ct.setText(Integer.toString(totalCt));
}
//sending back to start of app
addAgain = (Button) findViewById(R.id.add_again);
addAgain.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Amounts.this,
ChooseMaterials.class);
intent.putExtra("AddMore", ADD_MORE);
startActivity(intent);
}
});
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
if (TextUtils.isEmpty(editBl.getText().toString())) {
numberOfBl = 0;
} else {
numberOfBl = Integer.parseInt(editBl.getText().toString();
}
if (TextUtils.isEmpty(editSd.getText().toString())) {
amountSd = 0;
} else {
amountSd = Float.parseFloat(editSd.getText().toString());
}
SharedPreferences prefs = getSharedPreferences(
"SavedTotals", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("savedBl", numberOfBl);
editor.putFloat("savedSd", amountSd);
editor.commit();
}
@Override
protected void onResume() {
super.onResume();
SharedPreferences preferences = getSharedPreferences("SavedTotals",
Context.MODE_PRIVATE);
int blSaved = preferences.getInt("savedBl", 0);
float sdSaved = preferences.getFloat("savedSd", 0);
int numberBl = blSaved + numberOfBl;
editBl.setText(Integer.toString(numberBl));
float amountSds = sdSaved + amountSd;
editSd.setText(Float.toString(amountSds));
}
我仍然坚持这一点,有人可以给我更多帮助,我附上了一张图片来展示我正在努力实现的目标。
用户从导致活动 ab 或 c 的菜单开始,他们在其中输入一些数字并最终进入最终活动,其中显示了一些总计,当用户在最后一个活动上按下按钮时,我想保存总计并将用户发回到他可以重新开始的菜单,当用户结束最后一个活动时,会有一组新的总数我想将保存的总数添加到新的总数中并显示它们
我现在尝试保存的实例状态和恢复实例状态,这与我在旋转手机时遇到的问题相同,它再次添加了保存的总数