잘되는거 같다가도 사소한 문제로 골머리 앓고 있네요^^;;
토글 버튼의 상태에 따라서 Activity 내부의 버튼이나 텍스트 등을 보이고 안고이게 하는 코드인데요.
분명 View.GONE 으로 했는데 계속 남아서 보이네요...ㅜㅜ
화면 갱신에 문제가 있는걸까요?
그럼 Invalidate 같은 동작을 추가해야할까요?
도움을 부탁드립니다.
toggleUsingGallery.setOnCheckedChangeListener(new OnCheckedChangeListener(){
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if ( false == bUsePhotoGallery && false == isChecked )
{
photo_setting_save_btn.setEnabled(false);
photo_setting_preview_btn.setVisibility(View.GONE);
}
else if ( bUsePhotoGallery != isChecked )
photo_setting_save_btn.setEnabled(true);
if ( true == isChecked )
{
isNowUse = true;
photo_setting_info1.setVisibility(View.GONE);
photo_setting_info2.setVisibility(View.GONE);
photo_setting_preview_btn.setVisibility(View.VISIBLE);
photo_setting_Listview.setVisibility(View.VISIBLE);
photo_setting_slideTime.setVisibility(View.VISIBLE);
photo_setting_slideTimeValue.setVisibility(View.VISIBLE);
photo_Setting_minusBtn.setVisibility(View.VISIBLE);
photo_Setting_plusBtn.setVisibility(View.VISIBLE);
String strSec = nSlideTime + "초";
photo_setting_slideTimeValue.setText(strSec);
if ( nSlideTime == 30 )
photo_Setting_plusBtn.setEnabled(false);
else if ( nSlideTime == 3 )
photo_Setting_minusBtn.setEnabled(false);
// 갤러리에 저장된 사진이 없을 경우
if ( false == isExistPhotos() )
{
AlertDialog alertdlg = new AlertDialog.Builder( mContext )
.setTitle("사진 없음")
.setMessage("갤러리에 저장된 사진이 없습니다. 사진 등록 후 사용해주세요.")
.setPositiveButton("확인", new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
}).show();
}
Toast.makeText(mContext, "전자액자가 설정되었습니다.", Toast.LENGTH_SHORT).show();
}
else
{
isNowUse = false;
photo_setting_info1.setVisibility(View.VISIBLE);
photo_setting_info2.setVisibility(View.VISIBLE);
photo_setting_preview_btn.setVisibility(View.GONE);
photo_setting_Listview.setVisibility(View.GONE);
photo_setting_slideTime.setVisibility(View.GONE);
photo_setting_slideTimeValue.setVisibility(View.GONE);
photo_Setting_minusBtn.setVisibility(View.GONE);
photo_Setting_plusBtn.setVisibility(View.GONE);
Toast.makeText(mContext, "전자액자가 해제되었습니다.", Toast.LENGTH_SHORT).show();
}
}
});




소스에는 별 문제 없어보이는데요, 일단 참조 제대로하고있는지 또 참조는 oncreate에서 일괄적으로 해놓는게 좋으니까 참고하시구요
button = (Button) findViewById(R.id.~~);
안드로이드 토글 버튼이 뷰에서 사라졌다가 나타나면 제대로 토글 상태가 저장이 안되더라구요
해결책이 될만한게, 버튼이 눌릴때마다 버튼 이미지를 바꿔주면서 안에다가 boolean값을 저장해주면 됩니다
boolean ischecked = true;
setOnClickListner -> onclick ->
if(ischecked)
{ ischecked= false;
체크해제되었을때 코드 ~~
}
이런식으로 하시면 될 것 같습니다.