기억 저장소

클라우드 기반 인공지능 개발과 DevOps 실무

프론트엔드/안드로이드 스튜디오

안드로이드 스튜디오 : 다이얼 그램 다른 페이지 열기 / Intent 값을 보내 다른 페이지 열기

하늘.98 2022. 3. 23. 12:34

다이얼 그램을 통해서 

선택을 하게 하게 하였고 

선택을 통해 Intent 에 보내는 Number라는 변수에 값을 다르게 보냈다.

그런 뒤 값을 받는 클래스에 Number 변수 값에 if문을 걸어서 다른 화면을 보여주거나 다른 이벤트를 만들 수 있다. 

참고정도만 하자 

private void showDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    builder.setTitle("선택하세요").setItems(R.array.select_array, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            if(i == 0){
                // 선불 이용할 경우
                Intent intent = new Intent(MainActivity.this, ShowInfoActivity.class);
                intent.putExtra("Number", 1);
                startActivity(intent);
            }else if(i == 1){
                // 후불 이용할 경우
                Intent intent = new Intent(MainActivity.this, ShowInfoActivity.class);
                intent.putExtra("Number", 2);
                startActivity(intent);
            }
        }
    });
    AlertDialog alertDialog = builder.create();
    alertDialog.show();
}

-----------------------------------------------------------------------------------------------------------------------------

핸들러 

  final Handler handler = new Handler();
        final Runnable doNextActivity = new Runnable() {
            @Override
            public void run() {
                int Number = intent.getExtras().getInt("Number");



                if(Number == 1){
                Intent intent1 = new Intent(ShowInfoActivity.this, SelectActivity.class);
                startActivity(intent1);
                finish();

            }else {
                    Intent intent1 = new Intent(ShowInfoActivity.this, SelectActivity2.class);
                    startActivity(intent1);
                    finish();
                }

        }
        };

        thread = new Thread(){
            @Override
            public void run() {
                SystemClock.sleep(5000);
                if(!interrupted){
                    handler.post(doNextActivity);
                }
            }
        };
        thread.start();
    }

    @Override
    public void onBackPressed() {
        interrupted = true;
        super.onBackPressed();
    }
}