본문 바로가기
안드로이드 스튜디오 앱 개발/개념 안드로이드 스튜디오

액티비티와 액티비티 간의 화면 전환 [Android Studio]

by 망댕이 2023. 6. 13.
반응형

 

오늘은 액티비티와 액티비티 간의 화면 전환이 이루어지도록 하는 코드에 대해 알아보도록 하겠습니다.

 

우선 2개의 액티비티가 필요한데, 우선 MainActivity의 activity_main.xml 파일에 버튼을 추가하여

버튼을 눌렀을 경우 MainActivity에서 MenuActivity로 넘어가도록 만들어봅시다.

 

 

<activity_main.xml>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >
    
    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="20dp"
        android:layout_marginRight="30dp"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:text="다른 액티비티로 전환하기"
        android:textSize="25sp" />
 </RelativeLayout>

 

위 코드같이 액티비티로 전환하기 위한 버튼 하나를 만들어줍니다.

 

그 다음 MainActivity.java 파일로 넘어가 버튼을 할당하고 버튼을 눌렀을 때 Intent를 이용하여

MenuActivity로 넘어가도록 코드를 작성해줍니다.

 

<MainActivity.java>

public class MainActivity extends AppCompatActivity {
    Button button;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button = findViewById(R.id.button);
        button_easy.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), MenuActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
}

이렇게 코드 작성이 완료되었으면 화면에 생성될 MenuActivity를 만들어보도록 합시다.

일단 MainActivity와 같이 MenuActivity의 activity_menu.xml파일을 만들어 activity_menu.xml에도

버튼을 만들어 버튼을 눌렀을 때 다시 activity_main 화면으로 돌아가도록 하는 화면을 구성해줍니다.

 

<activity_menu.xml>

​

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="메인화면으로" />
</RelativeLayout>

xml파일을 다 작성했다면 이어서 MenuActivity.java 파일에도 코드를 작성해줍니다.

 

<MenuActivity.java>

public class MenuActivity extends AppCompatActivity {
    Button button2;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        button2 = findViewById(R.id.button2);
        button2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(intent);
                finish();
            }
        });
    }
}

 

이렇게 코드 작성을 마치고 앱을 실행시켜보면 오류가 뜹니다.

그 이유는 MenuActivity 액티비티를 AndroidManifest에 MenuActivity를 정의하는 코드를 작성하지 않았기 때문입니다.

 

<AndroidManifest.xml>

<activity
    android:name=".MainActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity android:name=".MenuActivity" />

이렇게 기존에 있는 MainActivity 처럼 MenuActivity도 추가해주면

정상적으로 MainActivity와 MenuActivity간 화면전환이 이루어지는 앱이 작동됩니다.

 

 

반응형