2017-01-31 3 views
1

Я хочу рассчитать 2 значения с помощью ключа из SharedPreferences. Это мой кодКак вычислить ключ с целым значением из SharedPreferences

Это моя первая деятельность

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

то потому что вам нужно, чтобы он дорожит для этих ключей от SharedPrefrences, а затем добавить их – Sanjeet

ответ

2

Это происходит потому, что вы добавляете или сцепить ключи в переменной . И вы хотите вычислить int, поэтому лучше всего поместить итоговый результат в тип данных float или int, не так ли?

ли что-то, как показано ниже

очень кулак все сделать два ключа, как ваш экземпляр поданной в QuestionActivity класса

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

+0

Я пробовал это, но я не получить значение из каждого ключа, результат 0 –

+0

пытались ли вы эта строка при доступе к sharedPreference SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences (this); ? – xFighter

+0

я сделал, но он все еще не работает –

0

доступ к значению в SharedPreferences

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 

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

Сначала создайте sharedpreferences, а затем получить значения ключей.

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; 
+0

Я пробовал это, но я не получил значение от каждой клавиши, результат равен 0. Я заполняю ключ A1 4, а A2 1. –

+0

вы можете показать свой код, где вы объявили A1 и A2 –

+0

это решила, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^