2012-06-19 4 views
2

2 가지 다른 CheckBoxes을 처리하는 애플리케이션을 코딩하고 있습니다. CheckBox이 클릭되면 틱의 색상은 파란색 대신 (녹색 대신) 나타나야하고 다른 색상 인 CheckBox은 녹색으로 유지되어야합니다.Android CheckBox 확인 색상 변경

이 내 코드입니다 ... 그러나

CheckBox green = (CheckBox) findViewById(R.id.greenButton); 
CheckBox blue = (CheckBox) findViewById(R.id.blueButton); 

blue.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
     if(arg1){ 
      blue.setHighlightColor(Color.BLUE); 
      Toast.makeText(getBaseContext(), "Question Marked As Partial", 4000).show(); 
     } 
    } 
}); 

green.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
     if(arg1){ 
      blue.setHighlightColor(Color.GREEN); 
      Toast.makeText(getBaseContext(), "Question Marked As Fully Understood!", 4000).show(); 
     } 
    } 
}); 

, 모두 CheckBoxes 틱 색상이 녹색으로 남아 있고 Toast 메시지가 표시되지 않습니다, 그래서 OnCheckedChangeListener가 호출되고 있지 않습니다 추측하고있다.

누군가가 조언을 제공 할 수 있습니까?

+0

코드 디버깅을 시도하거나'System.out.println()'문을 추가하여 코드가 제대로 호출되는지 확인해 봤습니까? 내 생각에이 전체 코드는 실제 청취자에게 문제가되기보다는 호출되는 것이 아니기 때문에 (청취자가 체크 박스에 배치되지 않습니다.) – wattostudios

답변

1

Toast이 표시되지 않으면 청취자가 실제로 CheckBoxes에 설정되지 않았을 수 있습니다. 즉,이 코드 전체가 호출되지 않을 수도 있습니다.

코드가 메서드에있는 경우 CheckBoxes에 수신기를 설정하는 메서드를 호출하거나이 코드가 onCreate()과 같은 기본 메서드 중 하나인지 확인하십시오.

아직 모르는 경우 코드를 디버깅하는 방법을 배우는 것이 좋습니다. 코드가 호출되는지 여부를 신속하고 쉽게 결정할 수 있습니다.