2010-05-04 4 views

답변

4

그냥 클래스 멤버의 상태를 토글 저장하는 것을 잊지 마세요, fieldChange 또는 navigationClick 또는 touchEvent 버튼 레이블을 변경 :

class ToggleButtonField extends ButtonField { 
    int mToggleState = -1; 
    String[] mLabels = {}; 
    public ToggleButtonField(String[] labels) { 
     super(CONSUME_CLICK); 
     if(labels != null && labels.length > 0) 
     { 
      mLabels = labels; 
      mToggleState = 0; 
      updateLabel();     
     }  
    } 

    private void updateLabel() { 
     setLabel(mLabels[mToggleState]);   
    } 

    protected void fieldChangeNotify(int context) { 
     mToggleState = getNextToggleState(mToggleState); 
     updateLabel(); 
     super.fieldChangeNotify(context); 
    } 

    private int getNextToggleState(int state) { 
     int result = mToggleState+1; 
     if(result >= mLabels.length) 
      result = 0; 
     return result; 
    } 
} 
+0

안녕이 내가이 클래스를 사용하여 시도와 같은 - 문자열 [] 라벨 = { "예 ","아니"}; \t \t \t edord = new ToggleButtonField (labels); edord.setChangeListener (this); grid2.add (edord); // 그러나 화면에 아무 것도 보이지 않습니다. 그 밖의 무엇을해야합니까? – Jatin

+0

@Jatin은 GridFieldManager를 나타냅니다. 화면 관리자에 grid2를 추가 했습니까? 여전히 작동하지 않는다면, 새 질문을 satckoverflow에 게시하고 여기에 의견을 달 수 있습니까? 고맙습니다. –

관련 문제