안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요.
커스텀 체크박스를 만들어서 적용은 하였는데, 한가지 문제가 발생했습니다.
infoView = (RelativeLayout)this.findViewById(R.id.infoLayout);
chkShowAgain = (CheckBox)this.findViewById(R.id.chk_show);
chkShowAgain.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
parent.setVisibility(View.GONE);
}
}
});
커스텀 체크박스를 클릭하면, 커스텀 체크박스가 속해있는 레이아웃(parent)를 제거하려 합니다.
이렇게하면 제거는 잘 되지만, 체크박스가 체크된 모양으로 바뀌기 전에 레이아웃이 사라지는 코드가 실행됩니다....
체크박스가 체크된 모양으로 바뀐 후, 저 코드가 실행되게 하려면 어떻게 해야 할까요?
(parent.setVisibility(View.GONE) 를 지우면, 체크상태가 바뀐 이미지가 잘 보입니다.)
조언 부탁드립니다!
자답입니닷..
딜레이를 주니까 제대로 되네요.
근데 맞는 방법인지는 .. 조언 부탁드립니다!
chkShowAgain.setOnCheckedChangeListener(new CheckBox.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
infoView.setVisibility(View.GONE);
}
}, 1);
}
}
});