본문 바로가기
Android

Extra - PutExtra, getExtra

by hiro1983 2016. 8. 5.

Activity 데이터를 주고 받을 때 사용하는 메서드로 Intent에 존재한다.

데이터를 보낼 때는 putExtra, 데이터를 받을 때는 getExtra를 사용한다.


기본적인 코드는 아래와 같다.


MainActivity.java

package net.hellohiro.intentextra;

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

public class MainActivity extends AppCompatActivity {

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

public void onSubActivityCall(View v) {
Intent intent = new Intent(getBaseContext(), SubActivity.class);
intent.putExtra("name", "hiro");
intent.putExtra("age", 34);
startActivity(intent);
}
}


 Intent 인스턴스를 생성 후 putExtra를 이용하여 데이터를 저장한다.

 intent.putExtra("key", "value")의 형식으로 사용하며, 여러 형태의 데이터가 들어갈 수 있다.


activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="net.hellohiro.intentextra.MainActivity">

<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="데이터 전송"
android:onClick="onSubActivityCall" />
</RelativeLayout>


SubActivity.java

package net.hellohiro.intentextra;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Toast;

public class SubActivity extends AppCompatActivity {

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

Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0);

Toast.makeText(getBaseContext(), "name : " + name + " / age : " +age, Toast.LENGTH_LONG).show();
}
}


 Intent 인스턴스를 생성시 getIntent를 사용하여 생성한다.

 데이터 타입에 따라 다른 Extra를 사용한다.

 데이터 타입이 문자열이라면 getStringExtra, 정수형이라면 getIntExtra 그 외에도 여러 데이터 타  입이 있다.


'Android' 카테고리의 다른 글

ListView  (0) 2016.08.10
IntentFlag  (0) 2016.08.08
startActivityForResult  (0) 2016.08.05
IntentFilter - 전화걸기  (0) 2016.08.05
Zxing 라이브러리를 사용한 바코드 스캔  (0) 2016.01.12