Turkcell | Geleceği Yazanlar

Soru & Cevap

Android ToggleButton OFF Problemi

07.12.2013 - 12:28

Merhaba elimde bi kac sayfadan olusan bir uygulama var. Her sayfa da birer tane togglebutton var. ilk sayfadaki toggle button gayet güzel calısıyor, ancak örnegin ben ikinci sayfaya gecip oradaki togglebutton u calıstırdıgımda ve sayfadan cıkıs yaptıgımda button OFF konumuna geciyor ve tabi bu arada müzik arkada calmaya devam edıyor. Buttondaki bu otomatik OFF yapma sıkıntısını nasıl asabılırım? Teşekkürler.

3212 Görüntülenme

3 Cevap

Nurettin
11.12.2013 - 13:51

Gösterdiğiniz ilgi için teşekkür ederim.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Nurettin
11.12.2013 - 13:49

Merhaba Can Bey,

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;
            }
        });
    }

}

 

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Can Çiloğlu
07.12.2013 - 12:45

Merhaba Nurettin,

Soruları sorarken açıklayıcı ve detaylı şekilde sormak ve soru seninki gibi kod içeriyorsa sorunla alakalı yazdığın kod parçalarını da soruya eklemek çok daha faydalı olacaktır. Bu şekilde sorularına net ve doğru cevaplar verebiliriz.

 

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.