안드로이드 스튜디오에서 alertdialog 를 써서 팝업창을 만들었는데요.(초보입니다)


  1. LoginActivity에서 버튼을 클릭했을 때 메인화면으로 넘어가기전에 팝업창을 먼저 띄우고 난 뒤 메인액티비티 화면으로 넘어가게 하려고합니다. 아래를 실행하면 팝업창이 뜨긴 하는데 닫기 버튼 클릭도 하기 전 순식간에 사라지고 메인액티비티로 넘어가버립니다. 띄우는 시간을 오래 유지할 방법은 없을까요?

  2. 혹시 버튼 클릭해서 팝업창 띄우는 방법 말고 그냥 LoginActivity 화면이 떴을 때 같이 뜨게하는 방법은 없을까요? 초보라서 자세한 코드나 방법좀 알려주시면 감사히 배우겠습니다.ㅠㅠ

두가지 방법 다 알려주실수 있을까요? 2번째 방법이 더 적용하고 싶습니다. 감사합니다....

아래는 LoginActivity.java입니다.

public class LoginActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_login);
    }


public void buttonOnClick(View v) {
        Button button = (Button) v;

        switch (v.getId()) {

            case R.id.button:

                new AlertDialog.Builder(LoginActivity.this)

                        .setTitle("알람 팝업")

                        .setMessage("팝업 창의 내용입니다.\n\n TEST!!")

                        .setNeutralButton("닫기", new DialogInterface.OnClickListener() {


                            public void onClick(DialogInterface dlg, int sumthin) {

                            }


                        }).show(); // 팝업창 보여줌
                break;
        }

        startActivity(new Intent(getApplicationContext(), MainActivity.class));
    }
}
  • 2016년 04월 24일에 작성됨

조회수 703


1 답변


2번처럼 하실려면 LoginActivity의 onCreate() 구현부에 다이얼로그창 코드를 작성해주시면 됩니다. 안드로이드 생명주기 한번 검색해보시면 도움 될 것 같고요.

1번 답변을 해드리자면,

위 코드를 보면 show(); 가 호출된 후 바로 break; 로 빠져나오게 됩니다.

그뒤에 바로 startActivity(); 가 호출되어 팝업창이 바로 꺼지게 됩니다.

다이얼로그창을 미리 구현해놓는 방법도 있으나, 제 생각으론 현재 코드 기준으로는 이런 방법으로 해보시면 될 것 같네요. 테스트는 해보지 않았으니 틀린부분들 있으면 조금씩 수정하시면 될것같네요. 스위치 케이스문에 대해서 한번 검색해보시는게 좋을 것 같네요~

final AlertDialog builder = new AlertDialog.Builder(LoginActivity.this)
                        .setTitle("알람 팝업")
                        .setMessage("팝업 창의 내용입니다.\n\n TEST!!")
                        .setNeutralButton("닫기", new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dlg, int sumthin) {
                            }
                        }).show(); // 팝업창 보여줌

                Handler handler = new Handler();
                handler.postDelayed(new Runnable(){
                    public void run(){
                        builder.dismiss();
                        startActivity(new Intent(getApplicationContext(), MainActivity.class));
                    }
                }, //원하는시간);
            }
  • 2016년 04월 24일에 수정됨
    Software Engineer
  • 2016년 04월 24일에 작성됨
    Software Engineer

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

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