지금 블루투스와 연동하는 어플을 하나 만들고 있는데 그 중 토글 버튼 사용에 대해 도저히 모르겠어서 질문을 합니다


SYSTEM_MODE  라는 변수로 토글버튼을 제어하려고 하는데


public String SYSTEM_MODE = "1";  

 

요런 식의 초기값을 가지고 있습니다


토글 버튼 사용에 대한 부분은  onCreate() 내부에

  


  final ToggleButton onoff = (ToggleButton) findViewById(R.id.onofftoggl);
   
   onoff.setOnClickListener(new View.OnClickListener() {
    //@Override
    public void onClick(View v) {
    if (onoff.isChecked()) {
      SYSTEM_MODE = "1";
      
     } else {
      SYSTEM_MODE = "0";
      
     }
    }
   });

  if (SYSTEM_MODE.equals("1")) {
    onoff.setChecked(true);
    sys_onoff.setText("On"); 
   } else if (SYSTEM_MODE.equals("0")){
    onoff.setChecked(false);
    sys_onoff.setText("Off");
   }  

 


요렇게 들어가 있으며, 어플 실행시 토글 버튼은 onoff.setChecked(false)로 작동하구요

이럴 때 블루투스에서 값을 받아오는 함수

 


public void Reaction(String Data)
 {

  Log.i("aaa", "-0000000000000000");
  if (Data != null && Data.length() > 0) {
   Log.i("aaa", Data);

   Log.i("aaa", "111111111111");
   if(Data.equals("020003"))
   {
    Log.i("aaa", "a");
    showToast("시스템 On");
    SYSTEM_MODE = "1";
    
   }
   else if(Data.equals("020103"))
   {
    Log.i("aaa", "b");
    showToast("시스템 Off");
    SYSTEM_MODE = "0";
    
   }
   else if(Data.equals("020203"))
   {
    Log.i("aaa", "c");
    showToast("사람 있어");
   }
   else if(Data.equals("020303"))
   {
    Log.i("aaa", "d");
    showToast("사람없어");
   }
  }
 }

 


를 통해 SYSTEM_MODE의 값을 바꾸고 이걸 통해서

 


if (SYSTEM_MODE.equals("1")) {
    onoff.setChecked(true);
    sys_onoff.setText("On"); 
   } else if (SYSTEM_MODE.equals("0")){
    onoff.setChecked(false);
    sys_onoff.setText("Off");
   }  

 

 

요 부분으로 토글값도 변화를 주고 싶었는데 OnCreate()내부에 있어서인지 어플 실행시 처음만 적용되고 그 뒤로는 적용되지 않네요.

 

 

어떻게 하면 블루투스에서 받은 값을 통해 토글 버튼을 제어할수 있을지 궁금합니다.