BlackBerry:トグルボタンのようにボタンフィールドを動作させるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2763152

  •  02-10-2019
  •  | 
  •  

質問

開始/停止ボタンとして使用したいボタンが1つあります。トグルボタンとしてボタンフィールドを動作させるにはどうすればよいですか?

助けてください。

役に立ちましたか?

解決

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;
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top