2015-07-05 4 views
-1

Я могу сохранить отмеченный переключатель с использованием общих предпочтений и предпочтений загрузки при каждом запуске приложения, но я хочу добавить код к переключателям, т. Е. Проверить, включен ли переключатель и выполнять действие, такое как отображение тоста для каждого переключателя в отдельности. Действие не должно срабатывать при каждом запуске операции, потому что im пытается установить уведомление после определенного периода времени с помощью AlarmManager, поэтому вызов метода снова приведет к его сбросу.проверить, включен ли переключатель радиосвязи с использованием общих настроек.

package com.example.radiogroup; 

import android.os.Bundle; 
import android.widget.RadioButton; 
import android.widget.RadioGroup; 
import android.widget.RadioGroup.OnCheckedChangeListener; 
import android.widget.TextView; 
import android.app.Activity; 
import android.content.SharedPreferences; 

public class MainActivity extends Activity { 

RadioGroup radioGroup; 
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_main); 
     radioGroup = (RadioGroup)findViewById(R.id.radiogroup); 
     radioGroup.setOnCheckedChangeListener(radioGroupOnCheckedChangeListener); 

     textCheckedID = (TextView)findViewById(R.id.checkedid); 
     textCheckedIndex = (TextView)findViewById(R.id.checkedindex); 

     LoadPreferences(); 
    } 

    OnCheckedChangeListener radioGroupOnCheckedChangeListener = 
     new OnCheckedChangeListener(){ 

    @Override 
    public void onCheckedChanged(RadioGroup group, int checkedId) { 

    RadioButton checkedRadioButton = (RadioButton)radioGroup.findViewById(checkedId); 
    int checkedIndex = radioGroup.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)radioGroup.getChildAt(savedRadioIndex); 
    savedCheckedRadioButton.setChecked(true); 
} 
} 


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context=".MainActivity" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/hello_world" /> 

    <RadioGroup 
     android:id="@+id/radiogroup" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
     <RadioButton 
      android:id="@+id/option1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Option 1" /> 
     <RadioButton 
      android:id="@+id/option2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Option 2" /> 
     <RadioButton 
      android:id="@+id/option3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Option 3" /> 
    </RadioGroup> 

    <TextView 
     android:id="@+id/checkedid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 
    <TextView 
     android:id="@+id/checkedindex" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

Я пробовал

if(jRadioButton1.isSelected()){ 
     jTextField1.setText("Welcome"); 
    } 
    else if(jRadioButton2.isSelected()){ 
     jTextField1.setText("Hello"); 
    } 

, но он не выполняет никаких действий

ответ

0

RadioButton.isChecked(); - это то, что вам нужно использовать. если флажок установлен обратный true

private void LoadPreferences(){ 
    SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE); 
    int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX, 0); 
    RadioButton savedCheckedRadioButton = (RadioButton)radioGroup.getChildAt(savedRadioIndex); 
    if(!savedCheckedRadioButton.isChecked()) 
      savedCheckedRadioButton.setChecked(true); 

}

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