전편 필요한분 여기~
2012/04/12 - [Android Study] - Android Custom Widget 만들기 5편
후 곧 마무리 지어 지을 수 있을듯.
// 결과물 Listener에 전달 하는 함수
// Listener 등록을 위한 interface 함수
// 저장된 instance restore 함수
실 사용 법은 담편에... 후~
2012/04/12 - [Android Study] - Android Custom Widget 만들기 5편
후 곧 마무리 지어 지을 수 있을듯.
// 결과물 Listener에 전달 하는 함수
private void onResult() {
// Listener 객체가 null 이 아닐 경우만 호출
// Listener 객체가 null 이 아닐 경우만 호출
if (mListener != null) mListener.onResult(mIsOn);
}
// Listener 등록 함수
public void setOnButtonClickListener(OnButtonClickListener listener) {
mListener = listener;
}
// on off toggle 함수
public void toggleOnOff() {
mHandler.sendEmptyMessage(ANIMATION_MESSAGE_START);
}
// on off setting 함수
public void setOnOff(boolean isOn) {
mIsOn = isOn;
// 기본 값은 on 상태를 가정하고 설정
int left = 0;
int right = mMovementLimite;
// off 상태 일때
if (mIsOn == false) {
left = mBtnWidth - mMovementLimite;
right = mBtnWidth;
}
// button rect left, right 위치 지정
mSource.left = left;
mSource.right = right;
// 움직일 delta 값 초기화
// 움직일 delta 값 초기화
mMoveDelta = 0;
// 화면 갱신
// 화면 갱신
invalidate();
}
// 현재 상태 얻어 오기 (on 이면 true)
public boolean getIsOn() {
return mIsOn;
} // Listener 등록을 위한 interface 함수
public interface OnButtonClickListener {
// On - Off 상태 변경되면 호출됨
// On - Off 상태 변경되면 호출됨
public abstract void onResult(boolean onResult);
}// 저장된 instance restore 함수
@Override
protected void onRestoreInstanceState(Parcelable state) {
// EXTRA_ON_OFF_SAVE_KEY 값으로 on off 저장된 instance 값 읽어 옴
// EXTRA_ON_OFF_SAVE_KEY 는 string으로 아무 것이든 상관 없음
// EXTRA_ON_OFF_SAVE_KEY 값으로 on off 저장된 instance 값 읽어 옴
// EXTRA_ON_OFF_SAVE_KEY 는 string으로 아무 것이든 상관 없음
mIsOn = ((Bundle)state).getBoolean(EXTRA_ON_OFF_SAVE_KEY);
// 움직일 delta 값 초기화
// 움직일 delta 값 초기화
mMoveDelta = 0;
// 기본 값은 on 상태를 가정하고 설정
int left = 0;
int right = mMovementLimite;
// off 상태 일때
if (mIsOn == false) {
left = mBtnWidth - mMovementLimite;
right = mBtnWidth;
}
// button rect가 null 일경우 새로 생성
if (mSource == null) {
mSource = new Rect(left, 0, right, mBtnHeight);
// button rect가 null 이 아니면 left, right 위치 설정
// button rect가 null 이 아니면 left, right 위치 설정
} else {
mSource.left = left;
mSource.right = right;
}
// 기존에 저장되어 있는 state 부모 클래스에 에 전달
// 기존 instance 정보는 EXTRA_SAVE_INSTANCE_KEY 사용
// 기존에 저장되어 있는 state 부모 클래스에 에 전달
// 기존 instance 정보는 EXTRA_SAVE_INSTANCE_KEY 사용
super.onRestoreInstanceState(((Bundle)state).getParcelable(
EXTRA_SAVE_INSTANCE_KEY));
EXTRA_SAVE_INSTANCE_KEY));
}
// instance 저장 함수
@Override
protected Parcelable onSaveInstanceState() {
// instance 저장 할 bundle 생성
// instance 저장 할 bundle 생성
Bundle bundle = new Bundle();
// EXTRA_SAVE_INSTANCE_KEY 사용 하여 기존 instance 저장
// EXTRA_SAVE_INSTANCE_KEY 사용 하여 기존 instance 저장
bundle.putParcelable(EXTRA_SAVE_INSTANCE_KEY, super.onSaveInstanceState());
// EXTRA_ON_OFF_SAVE_KEY 사용 하여 기존 on off 상태 저장
// EXTRA_ON_OFF_SAVE_KEY 사용 하여 기존 on off 상태 저장
bundle.putBoolean(EXTRA_ON_OFF_SAVE_KEY, mIsOn);
// bundle 전달
// bundle 전달
return bundle;
} 실 사용 법은 담편에... 후~
'Android' 카테고리의 다른 글
Android AsyncTask 함정 카드 (1) | 2014.08.03 |
---|---|
Android Custom Widget 만들기 7편 (0) | 2012.04.12 |
Android Custom Widget 만들기 5편 (0) | 2012.04.12 |
Android Custom Widget 만들기 4편 (0) | 2012.04.12 |
Android Custom Widget 만들기 3편 (0) | 2012.04.12 |