본문 바로가기
Android

[Android] 안드로이드 액티비티간 데이터 전달 intent 활용

by 유혁. 2017. 6. 28.

액티비티간 데이터 전송

 

 

 

데이터 전달 

 

intent.putStringArrayListExtra("ArrayList", ArrData);

 

 

 

데이터 받기

 

 Intent intent = getIntent();

ArrayList<String> ReceiveArr = intent.getStringArrayListExtra("ArrayList");

 

 

 

 

 

 

 

 

 

 

MainActivity.java

public class MainActivity extends Activity {

private String Data;
private ArrayList<String> ArrData = new ArrayList<>();

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

Button btn = (Button)findViewById(R.id.btn); //버튼의 id값을 가져와 btn이라는 변수에 할당

Data = "Hellow~~~";
ArrData.add("첫번째");
ArrData.add("두번째");
ArrData.add("세번쨰");

TextView textView = (TextView)findViewById(R.id.string);
textView.setText("전송할 문자열 : "+Data);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),IntentPage.class); //첫번째 인자 나의 클래스명, 두번째 인자 이동할 클래스명

//키 값으로 String이라는 이름을 지정하며 , 두번째 인자로 전송할 데이터 변수 지정 .putExtra("key",value);
intent.putExtra("String",Data);

//키 값으로 ArrayList라는 이름으로 지정, 전송할 데이터 변수 지정 .putStringArrayListExtra("KEY",value);
intent.putStringArrayListExtra("ArrayList", ArrData);

//IntentPage Activity에 데이터를 전달.
startActivity(intent); //인텐트를 시작한다.
}
});

}
}

intent.putExtra("KEY",VALUE);

 

 

 

 

IntentPage.java

public class IntentPage extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.intent_page);

Intent intent = getIntent(); //이전 액티비티에서 수신할 데이터를 받기위해 선언

String Receive = intent.getStringExtra("String"); //호출한 액티비티에서 String 이라는 키 값을 가진 데이터 로드

ArrayList<String> ReceiveArr = intent.getStringArrayListExtra("ArrayList"); //어레이 리스트 받아옴

TextView textView = (TextView)findViewById(R.id.textview);
textView.setText(Receive); //텍스트 뷰에 받은 데이터 출력

Log.i("Receive Data : ",Receive);


//어레이 리스트는 TextView 말고 Log로 출력
for(int i=0;i<ReceiveArr.size();i++){
Log.i("ReceiveArr Data : ",ReceiveArr.get(i));
}
}
}

intent.getStringExra("VALUE");

 

 

 

 

 activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:textSize="30dp"
android:gravity="center"
android:id="@+id/string"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ㅇ"/>

<Button
android:id="@+id/btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="페이지 이동"/>

<TextView
android:textSize="40dp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="MainActivity.class"/>

</LinearLayout>

 

 

intent_page.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<TextView
android:id="@+id/textview"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="intent_page"
android:textSize="30dp"/>

<TextView
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="IntentPage.class"
android:textSize="30dp"/>

</LinearLayout>

 

 

 

 

 

 

결과

 

 

 

 

 

 

 

----------------------------------------------------------------------------------------------------------------------

 

 

매니페스트 activity 추가해야합니다!.

 

<activity android:name="com.jy.a7th_study.IntentPage"/>   <!-- 이 부분을 추가해주어야 한다 -->

android:name="경로명.클래스명"