2012-07-30 162 views
0

我遇到的問題是管理切換按鈕的狀態。該按鈕打開/關閉藍牙。我該如何做到這一點,以便在不關閉應用程序的情況下輕鬆地打開和關閉按鈕?現在它只在啓動應用程序時起作用。管理切換按鈕的狀態

if(!myBluetooth.isEnabled()){ 

      final ToggleButton tglbtn = (ToggleButton)findViewById(R.id.ToggleButton01); 

      tglbtn.setChecked(false); 
      tglbtn.setOnClickListener(new OnClickListener(){ 
       public void onClick(View v) { 
        myBluetooth.enable();}}); 

      } 

     else { 
      ToggleButton tglbtn = (ToggleButton)findViewById(R.id.ToggleButton01); 

      tglbtn.setChecked(true); 

      tglbtn.setOnClickListener(new OnClickListener(){ 
      public void onClick(View v) { 
      myBluetooth.disable();}}); 
     } 

我試圖實現一個循環來實現這一點,但應用程序保持崩潰,我能想到的唯一的另一件事是一個goto下在以下兩個myBluetooth實例的底部,鏈接到其他人,但由於這在java中是不可能的,我沒有想法。

while(myBluetooth != null){ 
      tglbtn.setOnClickListener(new OnClickListener(){ 
       public void onClick(View v) { 
        myBluetooth.enable(); 
        toggleflag = true; }}); 
        while (toggleflag){ 
         tglbtn.setOnClickListener(new OnClickListener(){ 
          public void onClick(View v) { 
           myBluetooth.disable(); 
           toggleflag = false; }}); 

        } 

      } 

回答

1

嘗試這個

ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle); 
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
@Override 
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
Toast.makeText(getApplicationContext(), buttonView.isChecked()+"",Toast.LENGTH_SHORT).show(); 
     } 
    }); 
+0

感謝,虐待嘗試獲得的狀態。使用'tglbtn.setChecked(myBluetooth.isEnabled());'' – 2012-07-30 21:35:15