2013-11-11 2 views
0

У меня проблема с использованием sharedpreferences в моей кнопке переключения. Во-первых, я заявил, что мне нужно:Проблема с SharedPreferences в моем переключателе

public SharedPreferences preferences; 
public WifiManager wifiManager; 
ToggleButton wifitoggle; 

Тогда "действие" onClikc

// toggle wifi 
    public void wifi (View view) { 
     wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
     boolean wifion = ((ToggleButton) view).isChecked(); 
     if (wifion) { 
      wifiManager.setWifiEnabled(true); 
      // Shared preferences 
      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("togglewifi", true); // value to store 
      editor.commit(); 

     }else{ 
      wifiManager.setWifiEnabled(false); 
      // Shared preferences 
      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("togglewifi", false); // value to store 
      editor.commit(); 

     } 
    } 

и в моем OnCreate я сообщил значение:

boolean togglewifi = preferences.getBoolean("togglewifi", false); //default è false 
     if (togglewifi) 
     { 

      wifitoggle.setChecked(true); 
     } 
      else 
     { 
      wifitoggle.setChecked(false); 
     } 

Но когда я запустить приложение он падает. Странно то, что logCat ничего не говорит. Нет ошибок. Я что-то пропустил? Спасибо за помощь

+0

Вы абсолютно точно знаете, что ничего не найдено в logcat? Попробуйте фильтровать ошибки, скорее всего, вам не хватает разрешения на взаимодействие с WifiManager. – JoxTraex

+0

http://stackoverflow.com/questions/12639899/shared-preferences-in-android/12640072#12640072 вы можете сослаться на это. –

ответ

1

попробовать это:

SharedPreferences sPref = getSharedPreferences(PREFS_NAME, 0); 
Editor editor = sPref.edit(); 
editor.putBoolean("KEY", true/false); 
editor.apply(); 
+0

где 'PREFS_NAME' похоже на' static final String PREFS_NAME = "MyPreferences"; '? –

+0

в любом случае: 'Метод putBoolean (String, boolean) в типе SharedPreferences.Editor не применим для аргументов (String, String)' –

+0

yes, PREFS_NAME как статический конечный String PREFS_NAME = "MyPreferences"; – WOLVERINE

0

Вы должны инициализировать sharedprefereneces.

SharedPreferences sharedPreferences=context.getSharedPreferences(sharedPreferenceName, Context.MODE_PRIVATE); 
SharedPreferences.Editor editor=sharedPreferences.edit(); 

Здесь sharedPreferenceName должно быть имя, через которое вы собираетесь получить доступ к значению, сохраненному. Если он не совпадает, вы не сможете получить доступ к значению в sharedpreference.

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