Я использую следующий изменить символ: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(), и он работает, меняя строку, которую я указываю.
Что вы пытаетесь сделать? передавать данные в другую деятельность? – EE66
Нет, это просто настройка для выбора между различными валютами (только символ действительно меняется). Затем я пытаюсь установить TextView на выбранный символ и обновить активность (сохраняя все данные в полях, которые там есть). –
Причина получения знака «$» каждый раз, потому что ваши sharedprefs в пустом. Прежде чем обновлять активность, сначала необходимо сохранить данные. см. это: http://developer.android.com/training/basics/data-storage/shared-preferences.html –