android custom dialog에서 activity를 실행시키고 다시 back 버튼을 눌렀을 때 dialog를 지우려면?


안녕하세요. 다음과 같이 custom dialog를 실행시켰습니다.


        ImageButton mainBT = (ImageButton)findViewById(R.id.main_button);
        mainBT.setOnClickListener(new ImageButton.OnClickListener() {

            @Override
            public void onClick(View v) {
                dialogMain = new DialogMain(MainActivity.this, clickListener);
                dialogMain.show();
            }
        });

custom dialog인 DialogMain의 레이아웃 dialog_main은 이렇게 생겼습니다.

이미지

A ~ Z는 각각 이미지와 텍스트로 이루어진 레이아웃으로 클릭 이벤트를 넣어서 새로운 activity를 실행하도록 하고 있습니다. 레이아웃을 클릭하면 정상적으로 새로운 activity가 실행됩니다.

public class DialogMain extends Dialog {

    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_main);

        LinearLayout layoutA = (LinearLayout)findViewById(R.id.layout_A);
        layoutA.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Intent intent = new Intent(mContext, NewActivity.class);
                mContext.startActivity(intent);
            }
        });
  ...

문제는 activity를 종료했을 때입니다. 즉 back 버튼을 클릭해서 이전 화면으로 돌아오면 dialog가 그대로 남아 있습니다. 아마 이게 정상적으로 작동하는 것이겠죠;;; 저는 이전 화면으로 돌아왔을 때 dialog가 없는 상태(dialog를 호출하기 전 activity만 보이도록)가 되면 좋겠는데 방법이 없을까요?

dialog에서 새로운 activity를 실행시키는 onClick()에서 startActivity한 다음 dialog를 스스로 dismiss 하려면 어떻게 해야할까요?

  • 2016년 08월 14일에 작성됨

  • 아... 그냥 DialogMain에서 method하나 만들어서 dismiss()하도록 하면 간단하게 해결되는 문제입니다;;;;    신재훈   2016.8.14 03:56     
조회수 170


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close