반응형

오늘은 다른 액티비티를 불러오는 intent라는 것을 알아보았다
이 예제는 버튼을 누르면 다른 액티비티로 넘어가는 코드이다


첫 번째 액티비티
첫 번째 액티비티에는 버튼에게 onClick 속성을 주어서 버튼을 누르면 할 것을 정해준다 Intent를 사용하는 법은 객체 생성 후 (지금 액티비티, 목적지 액티비티. class) 식으로 정해준다
그리고 startActivity로 액티비티를 시작한다.

package com.example.ghj52.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getSupportActionBar().setTitle("첫번째 액티비티");

    }
    public void onClick(View view){
        Intent intent = new Intent(this, Main2Activity.class);
        startActivity(intent);

    }
}

 

첫 번째 xml
그냥 버튼에게 onClick 속성을 부여한 것뿐이다.
코드가 긴 이유는 constraint 레이아웃을 사용해 반응형으로 설정했기 때문이다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.example.ghj52.myapplication.MainActivity">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="두번째 페이지로 이동"
        android:textAppearance="@android:style/TextAppearance.Large"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:onClick="onClick"/>

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="첫번째 페이지"
        android:textAppearance="@android:style/TextAppearance.Large"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/button"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        android:layout_marginRight="8dp"
        app:layout_constraintRight_toRightOf="parent"
        />
</android.support.constraint.ConstraintLayout>

 

두 번째 액티비티 
이것은 또 버튼에게 onClick 속성을 주고 버튼이 누르면 액티비티가 끝나는 메서드 finish를 이용한 것이다.

package com.example.ghj52.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        getSupportActionBar().setTitle("두번째 액티비티");
    }
    public void onClick2(View view){
        finish();
    }

}

 

두 번째 xml
버튼에게 onClick 속성을 부여한 것뿐이다.

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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="com.example.ghj52.myapplication.Main2Activity">

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="두번째페이지"
        android:textAppearance="@android:style/TextAppearance.Large"
        app:layout_constraintBottom_toTopOf="@+id/button2"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="8dp"
        android:text="첫번째 페이지로 이동"
        android:textAppearance="@android:style/TextAppearance.Large"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:onClick="onClick2"/>
</android.support.constraint.ConstraintLayout>

 

실행하면,

 

이런 식으로 나오고 버튼을 누릅니다.

 

두 번째 페이지로 이동하게 된다. 또 버튼을 누르면,

 

첫 번째 페이지로 이동하게 된다. 원리는 intent를 통해 두 번째 페이지로 이동하는 메서드 중 액티비티를 시작하고 첫 번째 페이지로 이동 버튼을 누르면 액티비티를 끝나게 해 첫 번째 페이지로 이동하게 해주는 원리이다.

반응형

'안드로이드 > APK 개발' 카테고리의 다른 글

안드로이드 기본 (1)  (0) 2022.03.11