2015-06-07 2 views
-3

Я использую следующий изменить символ:Android Студия TextView текст не меняется, когда я использую SetText в пользовательском методе

private void updateCurrencySymbol() { 
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this); 

    String symbol = sharedPreferences.getString("preferences_currency", "$"); 
    Toast.makeText(getApplicationContext(),symbol,Toast.LENGTH_LONG).show(); 
    currencySymbol1 = (TextView) findViewById(R.id.currencySymbol1); 
    currencySymbol2 = (TextView) findViewById(R.id.currencySymbol2); 
    currencySymbol1.setText(symbol); 
    currencySymbol2.setText(symbol); 
    //refreshes the activity 
    Bundle temp_bundle = new Bundle(); 
    onSaveInstanceState(temp_bundle); 
    Intent intent = new Intent(this, MainActivity.class); 
    intent.putExtra("bundle", temp_bundle); 
    startActivity(intent); 
    finish(); 
} 

В Toast он показывает правильный символ, который я выбрал из настроек но он никогда не изменяется в реальном TextView. Я попытался изменить текст в методе onCreate(), и он работает, меняя строку, которую я указываю.

+0

Что вы пытаетесь сделать? передавать данные в другую деятельность? – EE66

+0

Нет, это просто настройка для выбора между различными валютами (только символ действительно меняется). Затем я пытаюсь установить TextView на выбранный символ и обновить активность (сохраняя все данные в полях, которые там есть). –

+2

Причина получения знака «$» каждый раз, потому что ваши sharedprefs в пустом. Прежде чем обновлять активность, сначала необходимо сохранить данные. см. это: http://developer.android.com/training/basics/data-storage/shared-preferences.html –

ответ

2

Это не будет, потому что данные в SharedPreferences не изменяются. Нет необходимости перезапускать активность. Нет необходимости ВСЕ. Просто setText() textview. затем сохранить в sharedPrefrences для будущих запусков.

+0

Даже без перезапуска TextView не меняется, и я сохраняю его в своих общих настройках в другом раздел кода. –

+0

Если текст не chagne, то вы не совершаете изменения где-то еще. Где и изменить строку. – EE66

+0

Пожалуйста, добавьте больше кода, и мы сможем помочь вам. –

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

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