본문 바로가기
프로젝트 기록/android

[android/안드로이드] 액티비티 이동하기 간단 예제

by 새아SaeA 2020. 1. 6.

새로운 액티비티 생성

: 마우스 오른쪽 클릭 > new > activity > Empty Activity

 

/res/layout/activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

    <Button
        android:id="@+id/changeBtn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center|center_horizontal"
        android:text="Change Activity" />

</LinearLayout>

/res/layout/activity_sub.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".sub">

    <TextView
        android:id="@+id/subText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center"
        android:text="액티비티를 변경했어요! 축하해요!"
        android:textSize="20sp" />

</LinearLayout>

/java/com.example.changeactivity/MainActivity.java

package com.example.changeactivity;

import ...

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button changeBtn = (Button)findViewById(R.id.changeBtn);
        changeBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), sub.class);
                intent.putExtra("message", "액티비티가 이동됐다!");
                startActivity(intent);
            }
        });
    }
}

/java/com.example.changeactivity/sub.java

package com.example.changeactivity;

import ...

public class sub extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);

        Intent intent = getIntent();
        Log.d("tag", intent.getStringExtra("message"));
    }
}

/결과물

 

+

layout_gravity vs gravity

1) layout_gravity : ex) 버튼을 레이아웃 상에서 어디에 놓을 것인가?

2) gravity : ex)버튼 안에 있는 text를 버튼 내부 어디에 위치시킬 것인가?

 

Intent

intent를 통해서  다른 액티비티로 정보를 전달할 수 있다. 

intent.putextra는 작성하지 않아도 충분히 동작한다. 정보를 전달하기 위한 코드이다.