2015-07-11 134 views
0

我的toggleButton無法正常工作,我該怎麼辦? 如果我按下toggleButton1,最終toggelButton2被按下,因爲它沒有得到toggelButton1的代碼。 但toggelButton2工作完美 請任何人能幫助我,給我修問題切換按鈕的問題

ToggleButton toggle1, toggle2; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main_act); 

    toggle1= (ToggleButton) findViewById(R.id.toggleButton1); 
    toggle2= (ToggleButton) findViewById(R.id.toggleButton2); 

     SharedPreferences spref = getSharedPreferences(null, 0); 
     if(spref.getBoolean("one", false)) { 
      toggle1.setChecked(true); 
      toggle2.setEnabled(false);  
     } else if(spref.getBoolean("two", false)) { 
      toggle2.setChecked(true); 
      toggle1.setEnabled(false);  
     } 

     toggle1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
      { 

       toggle2.setEnabled(!isChecked); 
       getSharedPreferences(null, 0).edit() 
       .putBoolean("one", isChecked) 
       .apply(); 
      startService(new   Intent(MainActActivity.this,LockScreenService.class)); 
      } 
     }); 
      toggle2.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener() { 
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
       toggle1.setEnabled(!isChecked); 
       getSharedPreferences(null, 0).edit() 
        .putBoolean("two", isChecked) 
        .apply(); 
startService(new Intent(MainActActivity.this,PinLockService.class)); }}); }} 

回答

0
SharedPreferences spref = getSharedPreferences(mContext, MODE_PRIVATE); 
    if(spref.getBoolean("one", false)) { 
     toggle1.setChecked(true); 
     toggle2.setChecked(false);  
    } else if(spref.getBoolean("two", false)) { 
     toggle2.setChecked(true); 
     toggle1.setChecked(false);  
    } 

    toggle1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 
if(isChecked){ 
spref.edit() 
      .putBoolean("one", isChecked).commit(); 

     startService(new   Intent(MainActActivity.this,LockScreenService.class)); 
     } 
} 
    }); 
     toggle2.setOnCheckedChangeListener(newCompoundButton.OnCheckedChangeListener() { 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
if(isChecked){ 
spref.edit() 
      .putBoolean("two", isChecked).commit(); 

     startService(new   Intent(MainActActivity.this,PinLockService.class)); 
     } 
} 
    }}); }} 
+0

仍能工作像舊 – Sam

+0

你有沒有設置默認選擇切換在XML按鈕? – NilayDani

+0

是的,我做了,問題是,當我按toggelbutton1,toggelbutton2下的代碼似乎設置在鎖屏上,因此它應該是toggelbutton1 .....但toggelbutton2代碼工作完美。 – Sam