我想用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中累计每个值。但是我得到的是关键,而不是我累计时的价值。
谢谢
答案 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));
}
答案 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;