profile image

L o a d i n g . . .

반응형

 

안드로이드 안드로이드  onNavigationItemSelected Intent 이용한 화면 전환

Screen switching using Android on NavigationItemSelected Intent

 

DrawerLayout을 사용하면 onNavigationItemSelected이 메소드를 사용하기 마련인데, 메뉴 클릭 시 발생하는 이벤트를 실행하는 메소드이다.

여기서 간단히 나는 회면전환을 위해서 Intent를 사용하였는데 잘 되지 않았다.

하지만 늘 그랬듯이 해결은 하였다.

 

With DraegerLayout, onNavigationItemSelected uses methods that execute events that occur when a menu is clicked.

Here I simply used Intent for the diversion and it didn't work.

But as always, i did.

 

public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.

        AlertDialog.Builder builder = new AlertDialog.Builder(Home.this);
        builder.setTitle("Logout");
        builder.setMessage("로그아웃 하시겠습니까?");

        int id = item.getItemId();

        if (id == R.id.nav_menu) {
            // Handle the camera action
        } else if (id == R.id.nav_cart) {

        } else if (id == R.id.nav_orders) {

        } else if (id == R.id.nav_log_out) {
            builder.setPositiveButton("예(Yes)", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                    Intent intent = new Intent(Home.this, MainActivity.class);
                    startActivity(intent);

                }
            });
            builder.setNegativeButton("취소(Cancel)", null);
            builder.show();

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

나는 로그아웃 버튼을 누르면 단순히 메인화면으로 화면 전환이 되게끔 하고 싶었다.

그러기에 앞서 버튼을 클릭하면 확인창이 뜨게하기 위해 AlertDialog를 사용하였다.

확인을 누르면 메인화면으로 넘어가야 하는데, 나는 당연히 Intent를 사용하였다.

그런데 이상하다 startActivity를 사용하는데 계속 오류가 났다.

구글링을 통해 또 공부를 해보니 여기서는 Fragment를 이용해서 화면을 전환해야 한다고 한것이다. 

여러번 시도 끝에 다시 Intent로 돌아왔는데

자세히 보니 startActivity가 아니라 startActivities로 쓰고 있어서 오류가 뜬 것이었다.

자동완성의 폐해...반성합니다.

 

I wanted to simply switch to the main screen when I pressed the logout button.

Before that, AlertDialog was used to open the confirmation window by clicking the button.

If you press OK, you have to go to the main screen, but of course I used Intent.

But it's weird to use startActivity and there's been a constant error.

When I studied through Google again, I said that I should use Fragment to change the screen.

I've been trying so many times, and I've

When I looked closely, I found an error because I was writing in startActivity instead of startActivity.

The harmful effects of auto completion...I'm sorry.

반응형
복사했습니다!