2014-09-19 3 views
-1

У меня есть RadioGroup с 2 RadioButtons.
Если я нажимаю rb_yes прерывания INT url_ask устанавливается на 0.
Если я нажимаю rb_no прерывания INT url_ask устанавливается равным 1.Последнее обновление RadioButton завершено перезагрузкой приложения

Я хочу, чтобы последний проверил RadioButton также проверяется после App был перезапущен.

Я попытался это, но каждый раз, когда я запустить приложение это происходит сбой:

//OnCreate 
    SharedPreferences settings = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE); 
    super.onCreate(savedInstanceState); 

    color = settings.getInt("COLOR", 1); 
    url_ask = settings.getInt("URL_ASK", 0); 

    if(color == 1) { 
     setContentView(R.layout.layout_main); 
    } 
    if(color == 2) { 
     setContentView(R.layout.layout_main_red); 
    } 
    if(color == 3) { 
     setContentView(R.layout.layout_main_green); 
    } 
    if(color == 4) { 
     setContentView(R.layout.layout_main_yellow); 
    } 
    if(color == 5) { 
     setContentView(R.layout.layout_main_pink); 
    } 

    final RadioButton rb_no = (RadioButton)findViewById(R.id.radioButton_links_no); 
    final RadioButton rb_yes = (RadioButton)findViewById(R.id.radioButton_links_yes); 

    if(url_ask == 0) { 
     rb_yes.setSelected(true); 
     rb_no.setSelected(false); 
    } 

    if(url_ask == 1) { 
     rb_no.setSelected(true); 
     rb_yes.setSelected(false); 
    } 

//OnClick for the RadioButtons 
public void url_ask_no (View v) { 
    SharedPreferences settings = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putInt("URL_ASK", 1); 
    editor.commit(); 
    url_ask = 1; 
} 

public void url_ask_yes (View v) { 
SharedPreferences settings = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE); 
    SharedPreferences.Editor editor = settings.edit(); 
    editor.putInt("URL_ASK", 0); 
    editor.commit(); 
    url_ask = 0; 
} 

EDIT:
Я знаю, что я сделал не так в настоящее время. Я хотел использовать findViewByID на другом макете, а не на моем layout_main. Это была проблема.

+0

Я не вижу, что вы вызываете setContentView() в свой 'onCreate', поэтому ваш' RadioButton', вероятно, 'null' – 0xDEADC0DE

ответ

0

Сохраните значение радиоблока в onSaveInstanceState, проверьте сохраненное состояниеInstanceState в onCreate и восстановите экземпляр и установите значение в radioobutton.

-1

Две проблемы я вижу здесь

1)

SharedPreferences settings = getSharedPreferences("SETTINGS", Context.MODE_PRIVATE); super.onCreate(savedInstanceState);
//setContentView(); must be added here

final RadioButton rb_no = (RadioButton)findViewById(R.id.radioButton_links_no); 
final RadioButton rb_yes = (RadioButton)findViewById(R.id.radioButton_links_yes); 

2) Вы не reciving значение url_ask

вы должны добавить код

settings.getInt("URL_ASK", 0);

after setContentView();

gud luck

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