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

조회수 4125회
  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));
    }
}
  • (•́ ✖ •̀)
    알 수 없는 사용자

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));
                        }
                    }, //원하는시간);
                }
    

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

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

(ಠ_ಠ)
(ಠ‿ಠ)