如何从SharedPreferences

时间:2017-01-31 13:30:04

标签: android sharedpreferences

我想用SharedPreferences中的键计算2个值。 这是我的代码

这是我的第一个活动

SharedPreferences.Editor editor = sharedpreferences.edit();
        editor.putInt(A1, option_scoreA1);
        editor.commit();
        Intent intent = new Intent(QuestionActivity.this, SecondActivity.class);
        startActivity(intent);

这是我的第二项活动

   SharedPreferences.Editor editor = sharedpreferences.edit();
            editor.putInt(A2, option_scoreA4);
            editor.commit();
            Intent intent = new Intent(SecondActivity.this, TestFinalActivity.class);
            startActivity(intent);

这是我的最后一项活动

protected QuestionActivity activity1;
protected SecondActivity activity2;

String c = activity1.A1;
String b = activity2.A2;

String A = c + b ;

@Bind(R.id.hasil)
TextView hasil;

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

public void total() {
    hasil = (TextView) findViewById(R.id.hasil);
    hasil.setText(A);
}

我想从键A1和A2中累计每个值。但是我得到的是关键,而不是我累计时的价值。

谢谢

3 个答案:

答案 0 :(得分:2)

这是因为您将密钥添加或连接到变量 A 。并且你想要计算int,所以最好把总结果放到float或int数据类型中,对吗?

执行如下所示的操作

在拳击课程

中提交你的实例时,所有人都会制作两把钥匙
public static final String KEY_A = "ka";
public static final String KEY_B = "kb";


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

    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

    int a = sharedPreferences.getInt(QuestionActivity.KEY_A, 0);
    int b = sharedPreferences.getInt(QuestionActivity .KEY_B, 0);
    A = a+b;

    total();
}

由于它是整数,因此需要将结果转换为字符串格式。

public void total() {
    hasil = (TextView) findViewById(R.id.hasil);
    hasil.setText(String.valueOf(A));
}

SharedPreference starting guide

答案 1 :(得分:0)

访问SharedPreferences中的值

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);

int value1 = preferences.getInt("your key", default_value);
int value2 = preferences.getInt("your key", default_value);

答案 2 :(得分:0)

首先创建共享偏好,然后获取密钥的值。

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);

int c = pref.getInt(A1, 0) // here A1 is the key and 0 is default value
int b = pref.getInt(A2, 0) // here A2 is the key and 0 is default value

int A = c + b;