2012-07-30 116 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