Anlatmaya çalıştığım şey şu. Şimdi iki tane sayfa düşünün ikisinde de birer tane togglebutton var.İlk yani mainActivity sayfasındaki toggle buttonu "on" konumuna alıyorsunuz ve servis yardımıyla radyo dinliyorsunuz, daha sonra sıkılıp diger sayfadaki radyoyu dinlemek üzere diger sayfaya geçiyorsunuz ve oradaki togglebuttonu calıstırıyorsunuz. Sonra tekrar diger sayfaya geciyorsunuz, ancak ikinci sayfadaki togglebutton otomatik olarak off konumuna geciyor, ben bu sayfalar arası gecişte toggle buttonun otomatik off konumuna gecmesini nasıl engellerim. Farklı bir platformda bana konuyla ilgili uygulamayı activity bazında değilde application bazında yazmam gerektiği söylendi. Ancak application sınıfları benim yabancı oldugum bir konu, içindeki bütün metodlar degişiyor açıkcası işin içinden çıkamadım.
Ben size uyulamanın bir sayfasının kaynak kodlarını gönderiyorum.Diger radyoların sayfaları da aynı içeriğe sahip.
public class RisaleFm extends Activity implements OnCheckedChangeListener {
private ToggleButton risalebutton;
private SeekBar sesRisale = null;
private AudioManager manager = null;
int volume = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.risale_fm);
initControls();
risalebutton = (ToggleButton) findViewById(R.id.tglBtnRisaleFM);
risalebutton.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
if (DinlemeServisi.class != null) {
stopService(new Intent(this, DinlemeServisi.class));
}
if (DinlemeServisiRahmetFM.class != null) {
stopService(new Intent(this, DinlemeServisiRahmetFM.class));
}
if (DinlemeServisiYurtFM.class != null) {
stopService(new Intent(this, DinlemeServisiYurtFM.class));
}
if (DinlemeServisiIrsadFM.class != null) {
stopService(new Intent(this, DinlemeServisiIrsadFM.class));
}
if (DinlemeServisiHikmetFM.class != null) {
stopService(new Intent(this, DinlemeServisiHikmetFM.class));
}
if (DinlemeServisiRisaleFM.class != null) {
startService(new Intent(this, DinlemeServisiRisaleFM.class));
}
} else {
stopService(new Intent(this, DinlemeServisiRisaleFM.class));
}
}
public void initControls() {
sesRisale = (SeekBar) findViewById(R.id.seekRisale);
manager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
sesRisale.setMax(manager.getStreamMaxVolume(AudioManager.STREAM_MUSIC));
sesRisale.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Toast.makeText(getApplicationContext(),
"Ses : " + Integer.toString(volume), Toast.LENGTH_SHORT)
.show();
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
manager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
volume = progress;
}
});
}
}