2012-03-27 6 views
1

블루투스 연결을 만드는 하나의 체크 박스가 있습니다. 문제는 블루투스 사용 권한 요청 대화 상자가 나타나고 "아니요"를 선택하면 checkbox가 여전히 남아 있습니다.이 활동에서 requestcode를 가져올 수 있고 RESULT_CANCELED가 표시되면 확인란을 해제 할 수 있습니까?활동에서 결과 코드를 가져 오는 방법은 무엇입니까?

CheckBox turnBtOnOff=(CheckBox)findViewById(R.id.checkBox1); 
turnBtOnOff.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    { 
     public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) 
     { 
      if (isChecked) 
      { 
       if(!mBluetoothAdapter.isEnabled()) 
       { 
        Intent enableBtIntent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); 
        startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); 
        //myAddress=mBluetoothAdapter.getAddress(); 
        //Toast.makeText(getBaseContext(), myAddress, Toast.LENGTH_SHORT).show(); 
        } 
       } 
       else 
       { 
        if(mBluetoothAdapter.isEnabled()) 
        { 
         mBluetoothAdapter.disable(); 
        } 
       } 
      } 
     }); 

답변

0
protected void onActivityResult(int requestCode, final int resultCode, final Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch (requestCode) { 
     case REQUEST_ENABLE_BT: { 
      if (resultCode == RESULT_CANCELED) { 
       ...... 
      } 
      break; 
     } 

    } 
} 
0

하면이 시도 :

private static int RESULT_OK=111; 
private static int PICK_CONTACT_REQUEST=112; 

protected void onActivityResult(int requestCode, int resultCode, 
      Intent data) { 
     if (requestCode == PICK_CONTACT_REQUEST) { 
      if (resultCode == RESULT_OK) { 
       // ....do your code here 
       // 

      } 
     } 
    } 

행운

0

당신이 활동에서 다시 결과를 얻을 수 onActivityResult를를 재정의해야합니다 이상

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    //if 12345 is the int value you used to start bluetooth activity then 
    if(requestCode == 12345){ 
     if(resultCode == RESULT_OK){ 
      //do whatever you want 
     } 
     else{ 
      //do whatever you want 
     } 
    } 
} 
0

이 조금 오래된,하지만 난 오늘 같은 문제를했다하여 onActivityResult() 메소드

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
     //check for the requestcode here and check/uncheck the checkbox 

} 
2
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode ==REQUEST_ENABLE_BT) { 
     if (resultCode == RESULT_CANCELED) { 
      turnBtOnOff.setSelected(false); 
     } 
    } 
} 
0

를 타고이 내 솔루션은 결과가 안드로이드 4.4.2

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
    if(resultCode==RESULT_FIRST_USER){ 
     //custom request is BLUETOOTH_REQUEST_DISCOVERABLE 
         if(requestCode==BLUETOOTH_REQUEST_DISCOVERABLE){ 
          //Do something 
         } 
        } 
} 

작업입니다 RESULT_OK가 아니기 때문에, 수행 할 연산이 아니기 때문에 사용자가 정의한 acitivty입니다.

관련 문제