2013-09-21 1 views
0

У меня есть два мероприятия (настройки, молитва)как получить sharedpreferences из радио-группы, чтобы anotrher activitys

в деятельности настройки я положил три радио-кнопки внутри радио группы каждая кнопка радио позволит цвет изменилась в молитвах деятельность

settings.class

public class SettingsActivity extends Activity { 

RadioGroup rg; 
TextView textCheckedID, textCheckedIndex; 
final String KEY_SAVED_RADIO_BUTTON_INDEX = "SAVED_RADIO_BUTTON_INDEX"; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_settings); 
    rg = (RadioGroup) findViewById(R.id.radios); 
    rg.setOnCheckedChangeListener(rgOnCheckedChangeListener); 
    textCheckedID = (TextView) findViewById(R.id.checkedid); 
    textCheckedIndex = (TextView) findViewById (R.id.checkedindex); 
    LoadPreferences(); 
} 
OnCheckedChangeListener rgOnCheckedChangeListener = new OnCheckedChangeListener(){ 
@Override 
public void onCheckedChanged(RadioGroup group, int checkedId) { 
    RadioButton checkedRadioButton = (RadioButton)rg.findViewById(checkedId); 
    int checkedIndex = rg.indexOfChild(checkedRadioButton); 
    textCheckedID.setText("checkedID = " + checkedId); 
    textCheckedIndex.setText("checkedIndex = " + checkedIndex); 
    SavePreferences(KEY_SAVED_RADIO_BUTTON_INDEX, checkedIndex); 

} 
}; 
private void SavePreferences(String key, int value) { 
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
SharedPreferences.Editor editor = sharedPreferences.edit(); 
editor.putInt(key, value); 
editor.commit(); 
} 
private void LoadPreferences(){ 
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX, 0); 
RadioButton savedCheckedRadioButton = (RadioButton) rg.getChildAt(savedRadioIndex); 
savedCheckedRadioButton.setChecked(true); 
} 
} 

и в деятельности молитв TextColor и фон макета должны изменить цвет на один из выбранного выбора в деятельности настройки

prayers.class

SharedPreferences sharedPreferences = getSharedPreferences(
      "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE); 
    int colors = sharedPreferences 
      .getInt("KEY_SAVED_RADIO_BUTTON_INDEX", 0); 
    if (colors == 0) { 
     textview.setTextColor(getResources().getColor(R.color.Vanilla)); 
     linear.setBackgroundColor(getResources().getColor(R.color.Maroon)); 
     textview.setShadowLayer(0, 0, 0, 
       (getResources().getColor(R.color.Maroon))); 
    } else if (colors == 1) { 
     textview.setTextColor(Color.BLACK); 
     linear.setBackgroundColor(Color.WHITE); 
     textview.setShadowLayer(0, 0, 0, Color.BLACK); 
    } else if (colors == 2) { 
     textview.setTextColor(Color.WHITE); 
     linear.setBackgroundColor(Color.BLACK); 
     textview.setShadowLayer((float) 1.5, 2, 2, Color.WHITE); 
    } 

где моя вина любая помощь ???

ответ

0

Вы пишете и чтение из двух различных SharedPreferences:

В SettingsActivity:

SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 

В молитвах:

SharedPreferences sharedPreferences = getSharedPreferences(
     "com.e_orthodoxy.orthodox_prayers", MODE_PRIVATE); 

Обратите внимание на первый параметр т.е. имя файла SharedPreference ,

+0

Я изменил второй, и я напишу его как первый, но он не работает, цвета не меняются – BasILyoS

+0

В каком порядке представлены действия? Включает ли перезапуск приложение изменения, внесенные в предыдущий вызов? – Rajesh

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