2014-04-24 6 views
0

제목으로 X 버튼을 눌렀을 때 소리를 음소거하거나 Y 버튼을 누르면 음을 소거하고 싶습니다. 활동을 통해이 상태를 유지하고 싶습니다. 여기 내 코드가있다.활동을 통해 소리를 음소거하는 방법 메시지를 보내려면

타격 X 버튼 :

mSound.setVolume(0, 0); 
sound = "SOUND_OFF"; 

Y 버튼 :

mSound.setVolume(1, 1); 
sound = "SOUND_ON" 

내가 처음 활동이 끝나면 : 내 두 번째 활동에서

Intent i = new Intent(getApplicationContext(),com.example.englishtest.Question.class); 
             i.putExtra("checkSound", sound); 
             startActivity(i); 
             overridePendingTransition(R.anim.right_in, R.anim.left_out); 
             finish(); 

을 :

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 

    Bundle extras = getIntent().getExtras(); 
    if(extras != null) { 
     sound = extras.getString("checkSound"); 
     checkVolume(sound); 
    } 

내 checkVolume 기능 :

public void checkVolume(String s){ 
    if(s=="SOUND_ON"){ 
     mSound.setVolume(1, 1); 
    } 
    else if(s=="SOUND_OFF"){ 
     mSound.setVolume(0, 0); 
    } 
} 

그러나이 작동하지 않습니다. 누구든지 내 실수를 보여줄 수 있습니까?

+0

아무도 도와 줄 수 없나요? – dzuncoi

답변

0

이 질문을 게시하는 순간부터 너무 늦었습니다. 그러나 당신의 접근이 나쁘다고 생각합니다. 구성 상태를 보유 할 정적 필드가있는 다른 클래스를 만듭니다. 예를 들면 :

public class Configuration { 
    public static boolean soundOn; 
} 

의 주요 활동이 필드를 초기화 :

protected void onCreate(Bundle savedBundle) { 
    Configuration.soundOn = true; 
    ... 
} 

그럼 그냥에서 음소거/음소거 해제를 설정할 때 setVolume 싶어이 분야에 새로운 상태를 저장해야 할 때마다이 필드를 확인 모든 활동.

+0

네, 4 ~ 5 개월 전에 알아 냈습니다 =) btw, 답장을 보내 주셔서 감사합니다. 내 접근 방식은 당신과 거의 비슷합니다;) – dzuncoi