2013-07-03 46 views
0

中切換按鈕我的切換按鈕出現問題,並且我總是關閉某個部隊。按鈕的代碼:使用SharedPreferences強行關閉並在android

public void getToggle(View view) { 
     boolean on = ((ToggleButton) view).isChecked(); 
     if (on) { 
      PackageManager pm = getPackageManager(); 
      ComponentName compName = new ComponentName(getApplicationContext(), 
      LowBatteryReceiver.class); 
      pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
      PackageManager.DONT_KILL_APP); 
      Toast.makeText(MainActivity.this, "Modalità risparmio attivata", Toast.LENGTH_LONG).show(); 
      TextView textView = (TextView)findViewById(R.id.risparmiostate); 
      textView.setText("Modalità risparmio on"); 

      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("tgpref", true); // value to store 
      editor.commit(); 

     }else{ 
      PackageManager pm = getPackageManager(); 
      ComponentName compName = new ComponentName(getApplicationContext(), 
      LowBatteryReceiver.class); 
      pm.setComponentEnabledSetting(compName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
      PackageManager.DONT_KILL_APP); 
      Toast.makeText(MainActivity.this, "Modalità risparmio disattivata", Toast.LENGTH_LONG).show(); 
      TextView textView = (TextView)findViewById(R.id.risparmiostate); 
      textView.setText("Modalità risparmio off"); 

      SharedPreferences.Editor editor = preferences.edit(); 
      editor.putBoolean("tgpref", false); // value to store 
      editor.commit(); 
     } 
    } 

,並在onCrerate

public SharedPreferences preferences; 
    /** Called when the activity is first created. */ 
    @SuppressLint("NewApi") 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
SharedPreferences preferences = getPreferences(MODE_PRIVATE); 
     boolean tgpref = preferences.getBoolean("tgpref", true); //default is true 
     if (tgpref = true) //if (tgpref) may be enough, not sure 
     { 
      togglebutton.setChecked(true); 
     } 
     else 
     { 
      togglebutton.setChecked(false); 
     } 

任何想法?我嘗試了一切。謝謝。我的logcat不起作用(我不知道爲什麼)。不顯示任何東西。

+0

發佈logcat錯誤,否則它不容易找出意思,我們無法找到任何東西在黑暗的夜晚 –

回答

1

變化

SharedPreferences preferences = getPreferences(MODE_PRIVATE); 

preferences = getPreferences(MODE_PRIVATE); 
在活動的 onCreate

因爲你沒有在getToggle方法

+0

不工作..我有logcat ..我有一個致命錯誤「無法啓動活動」和然後「引起NullPointerException .... MainActivity onCreate(57)」 –

+0

好吧,現在它的工作原理,問題是我宣佈檢查條件後的togglebutton。現在唯一的問題是切換開始在「開」狀態而不是「關」。爲什麼? –

+0

男子請幫助! http://stackoverflow.com/questions/17421506/how-to-parse-same-name-tag-in-android-xml-dom-parsing – Altair

1

嘗試使用它之前初始化其中U聲明爲類級別字段喜好實例使用

if (tgpref == true) 

或者

if(tgpref) 

代替

如果(tgpref =真)。

嘗試在Oncreate()中初始化TextView textView = (TextView)findViewById(R.id.risparmiostate);

同樣刪除SharedPreferencesSharedPreferences preferences = getPreferences(MODE_PRIVATE);正如你已經宣佈全球。

+0

這些解決方案沒有工作: (。有可能這個問題是我設置切換的方式嗎? –

+0

把你的更新代碼與xml.If你得到logact錯誤,然後也發佈它 –

+0

我解決了。問題是,我宣佈檢查條件後的togglebutton 。但是現在當我第一次啓動應用程序時,切換開關設置爲「開」狀態而不是「關」。我如何設置爲默認狀態? –

相關問題