android - 保存数据并使用它

标签 android

我想做的是在 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));
}

Drawing of Activities

我仍然停留在这个问题上,有人可以给我更多帮助吗,iv 附上一张图片来展示我正在努力实现的目标。

用户从导致 Activity a b 或 c 的菜单开始,在那里他们输入一些数字并结束于最终 Activity ,其中显示一些总计,当用户在最后一个 Activity 上按下按钮时,我想保存总计和将用户返回到他可以重新开始的菜单,当用户结束上次 Activity 时,将会有一组新的总计我想将保存的总计添加到新的总计集中并显示它们

我现在尝试了保存的实例状态和恢复实例状态,这与我旋转手机时遇到的问题相同,它再次添​​加了保存的总计

最佳答案

将您的值保存在一个包中,我可以在您需要的一秒钟内为您提供代码。

关于android - 保存数据并使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16326359/

相关文章:

android - 如何更改android中的闹钟?

android - canvas.scale(scale,scale,px,py) 抽动到一个新位置

java - fragment 上的 fragment 中的 getArgs() 为 null

java - 如何在android studio中更改apk文件名

android - 向 AWS Userpool 验证社交身份联合身份验证用户? - 安卓

android - 如何保护我的应用程序联系人(如 Facebook)

android - 在 Visual Studio 2015 中调用 cordova 中的 Web 服务

java - Android:在 `onClick` 事件上全屏显示带有标题的图像

java - zxing 二维码扫描仪在 Android 上将上位转换为下位?

android - 无法弄清楚在 OkHttp 的 onResponse 方法中要检查什么