我想做的是在 Activity 中保存一些数字,以便在 Activity 再次开始时将它们添加到更多数字中。
我尝试在暂停时保存号码,然后在恢复时将它们添加到新号码中,这有点奏效,但当我旋转手机时,它会再次添加保存的号码,有什么更好的方法吗
一些代码
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));
}
我仍然停留在这个问题上,有人可以给我更多帮助吗,iv 附上一张图片来展示我正在努力实现的目标。
用户从导致 Activity a b 或 c 的菜单开始,在那里他们输入一些数字并结束于最终 Activity ,其中显示一些总计,当用户在最后一个 Activity 上按下按钮时,我想保存总计和将用户返回到他可以重新开始的菜单,当用户结束上次 Activity 时,将会有一组新的总计我想将保存的总计添加到新的总计集中并显示它们
我现在尝试了保存的实例状态和恢复实例状态,这与我旋转手机时遇到的问题相同,它再次添加了保存的总计
最佳答案
将您的值保存在一个包中,我可以在您需要的一秒钟内为您提供代码。
关于android - 保存数据并使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326359/