2015-12-14 58 views
5

Düğme düğmesi UI görünümünde OFF durumuna gitmiyor, ayrıca onCheckedChangeListener ayarlıyorum. Aynı zamanda griye döner. Bu, API15 ile Simülatörde gerçekleşir, ancak gerçek cihazımda API19'da görünmez. Kod mu, simülatör mü?
Son sr.setChecked(false) sadece düğmenin griye dönüşmesine izin veriyor ancak KAPALI olarak ayarlamıyor.
Minimal örnek davranışı yeniden oluşturmaya: sınıf var:Anahtar Düğmesi Düzgün çalışmıyor

Switch sr; 
Switch srs; 

onCreate içerir:

sr = (Switch) findViewById(R.id.switch_ros); 
    srs = (Switch) findViewById(R.id.switch_ros_stream); 
    sr.setOnCheckedChangeListener(this); 
    srs.setOnCheckedChangeListener(this); 

onCheckedChanged içerir:

@Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
    buttonView.setChecked(false); 
} 

DÜZENLEME: Ben Nexus_5_API_19 çalıştı yerine Nexus_4_API_15 arasında ve iyi çalışıyor. Android-Bug gibi görünüyor. Image of Simulators

+0

Samsung cihazdır? onlar her zaman yaparlar ... –

+2

Burada neyi başarmaya çalışıyorsun? neden zaten üzerinde oluşturdunuz onCheckedChanged içinde findViewById (R.id.switch_ros) içinde – Nitesh

+0

oncreate, düzenleyin. – ItsmeJulian

cevap

2

yerleştirin sınıfında onCreate içinde Sonra

private Switch sr; 
private Switch srs; 

()

@Override 
protected void onCreate(Bundle savedInstanceCreate) 
{ 
    [...]// other onCreate() stuff 
    sr = (Switch) findViewById(R.id.switch_ros); 
    srs = (Switch) findViewById(R.id.switch_ros_stream); 
    sr.setOnCheckedChangeListener(this); 
    srs.setOnCheckedChangeListener(this); 
} 

Sonra OnCheckedChangeListener()

@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
{ 
    switch(buttonView.getId()) 
    { 
     case R.id.switch_ros: 
      //boolean wifi_state = isConnected(isChecked); 
      sr.setChecked(isChecked); 
      break; 
     case R.id.switch_ros_stream: 
      [...]// other switch function 
      srs.setChecked(isChecked); 
      break; 
    } 
} 

düzenleme 1 üstündeki bu iki onCheckedChangeList Ener, açmaya/kapatmaya çalıştığınız anahtar düğmesini bulamıyor. Bunun nedeni, yönteme birden fazla anahtar düğmesi atamanızdır. Bir anahtar kutusu kullanmanız veya hangi tuşa geçmek istediğinizi ayırt etmek için yöntemin bir başka ifadesi kullanmanız gerekecektir.

+0

Ben basitleştirmek ve önerilerinize göre soru düzenledim. Ancak henüz – ItsmeJulian

+0

'u çözmediyseniz, düzenlemeleriniz, ilk anahtar düğmesinin düğmenin başlatılmasının üstünde olması için setOnChangedListener nedeniyle boş bir istisna hatası yaşayabilir. Düzenleyeceğim, lütfen ne isConnected()? –

+1

Matthew karışıklık için özür dilerim, başka bir düzenleme. Bu android hata – ItsmeJulian