안드로이드 스튜디오에서 alertdialog 를 써서 팝업창을 만들었는데요.(초보입니다)
조회수 4125회
LoginActivity에서 버튼을 클릭했을 때 메인화면으로 넘어가기전에 팝업창을 먼저 띄우고 난 뒤 메인액티비티 화면으로 넘어가게 하려고합니다. 아래를 실행하면 팝업창이 뜨긴 하는데 닫기 버튼 클릭도 하기 전 순식간에 사라지고 메인액티비티로 넘어가버립니다. 띄우는 시간을 오래 유지할 방법은 없을까요?
혹시 버튼 클릭해서 팝업창 띄우는 방법 말고 그냥 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)); } }, //원하는시간); }
댓글 입력