首页 > 解决方案 > 将带有 SharedPreferences 的 double 发送到另一个活动

问题描述

我正在尝试将值从第一个活动发送到最后一个活动。经过一些计算(取决于用户的输入)值 a5 是示例 2500。我将它存储在一个字符串中并尝试发送它,但在其他活动中它总是给我一个值 100 而不是原来的 2500。

代码:第一个活动:

// After some calculation a5 is a 2500
double a5 = a1 / 30;


        details.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String value = Double.toString(a5);
                SharedPreferences sharedPref = getSharedPreferences("myKey", MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedPref.edit();
                editor.putString("value", value);
                Log.d("myTag", "Value: " + value); // this is correct and gives me the right value
                openActivity3();
            }
        });

上次活动:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_details);

        Textview= (TextView) findViewById(R.id.WarframeLvl);

        SharedPreferences sharedPreferences = getSharedPreferences("myKey", MODE_PRIVATE);
        String value = sharedPreferences.getString("value","");

        Log.d("myTag", "TValue received: " + value); // I see a value of 100

        Textview.setText(value); //The textview changes and gives me the number 100 instead of the correct number.

标签: android-studio

解决方案


            SharedPreferences sharedPref = getSharedPreferences("myKey", MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPref.edit();
            editor.putString("value", value);
            editor.commit();

您忘记调用保存功能。检查上面。


推荐阅读