2015-05-09 125 views
0

我想做出可以播放背景音樂服務的切換按鈕。這是我的代碼。如何保存更改切換按鈕

public class MainActivity extends Activity { 

private Switch mySwitch; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    } 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
    } 

     public void playRain(View view) { 
     // Is the toggle on? 
     boolean on = ((Switch) view).isChecked(); 

     if (on) { 
      Intent objIntent = new Intent(this, PlayRain.class); 
      startService(objIntent); 
     } else { 
      Intent objIntent = new Intent(this, PlayRain.class); 
      stopService(objIntent); 
     } 
    } 

} 

當我將開關按鈕切換到打開聲音播放。但是當我點擊主頁按鈕並重新打開應用程序時,切換按鈕將返回關閉狀態。如何保存更改切換按鈕?以便切換按鈕不會自行回到關閉狀態。對不起我的英語不好。

回答

0

您可能需要在SharedPreferences中保存切換按鈕的狀態。 This可能會有所幫助。

我寫了一個示例代碼。我希望它有幫助

public class MainActivity1 extends Activity { 

private Switch mySwitch; 
SharedPreferences pref; 
Editor edit; 
final String SOUND_PREF_KEY = "background_sound"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mySwitch = (Switch) findViewById(R.id.switch1); 
    pref = getPreferences(MODE_PRIVATE); 
    edit = pref.edit(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    mySwitch.setChecked(pref.getBoolean(SOUND_PREF_KEY, false)); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    if (mySwitch.isChecked()) { 
     edit.putBoolean(SOUND_PREF_KEY, true); 
    } else { 
     edit.putBoolean(SOUND_PREF_KEY, false); 
    } 
    edit.commit(); 

} 

public void playRain(View view) { 
    // Is the toggle on? 
    boolean on = ((Switch) view).isChecked(); 

    if (on) { 
     Intent objIntent = new Intent(this, PlayRain.class); 
     startService(objIntent); 
    } else { 
     Intent objIntent = new Intent(this, PlayRain.class); 
     stopService(objIntent); 
    } 
} 

} 
+0

它的工作原理,謝謝! –