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

조회수 4055회

안녕하세요. 다음과 같이 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 하려면 어떻게 해야할까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 아... 그냥 DialogMain에서 method하나 만들어서 dismiss()하도록 하면 간단하게 해결되는 문제입니다;;;; 알 수 없는 사용자 2016.8.14 03:56

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)