대부분의 어플리케이션은 많은 View를 모으고 모아서 만든 결과물입니다.
안드로이드에서 페이지 전환과 페이지간 데이터 전달은 Intent를 통해서 구현할 수 있습니다.
더보기
※ 인텐트란
인텐트는 앱 컴포넌트가 무엇을 할 것인지를 담는 메시지 객체입니다. 메시지를 사용하는 가장 큰 목적은 다른 액티비티, 서비스, 브로드캐스트 리시버, 컨텐트 프로바이더 등을 실행하는 것입니다. 인텐트는 그들 사이에 데이터를 주고 받기 위한 용도로도 쓰입니다.
Manifest
<activity android:name=".SubActivity"/> <!--액티비티 추가시 <application> 안에 추가해줘야함-->
MainActivity.class
package com.example.user.intent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
public static final int sub = 1001; /*다른 액티비티를 띄우기 위한 요청코드(상수)*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button)findViewById(R.id.sub); /*페이지 전환버튼*/
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(),SubActivity.class);
startActivityForResult(intent,sub);//액티비티 띄우기
}
});
}
}
Manifest
<activity android:name=".SubActivity"/> <!--액티비티 추가시 <application> 안에 추가해줘야함-->
MainActivity.class
package com.example.user.myintent;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button sub = (Button)findViewById(R.id.sub);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String[] array = {"홍길순","김춘추","김유신"}; /*송신 할 배열*/
Option option = new Option("010xxxxxxxx","서울특별시xxxx"); /*송신 할 클래스*/
Intent intent = new Intent(getApplicationContext(), SubActivity.class);
intent.putExtra("name","홍길동"); /*송신*/
intent.putExtra("age",20);
intent.putExtra("array",array);
intent.putExtra("class",option);
startActivity(intent);
}
});
}
}
SubActivity.class
package com.example.user.myintent;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;
public class SubActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
TextView tx1 = (TextView)findViewById(R.id.textView1); /*TextView선언*/
TextView tx2 = (TextView)findViewById(R.id.textView2);
TextView tx3 = (TextView)findViewById(R.id.textView3);
TextView tx4 = (TextView)findViewById(R.id.textView4);
TextView tx5 = (TextView)findViewById(R.id.textView5);
Intent intent = getIntent(); /*데이터 수신*/
String name = intent.getExtras().getString("name"); /*String형*/
tx1.setText(name);
int age = intent.getExtras().getInt("age"); /*int형*/
tx2.setText(String.valueOf(age));
String array[] = intent.getExtras().getStringArray("array"); /*배열*/
String add_array="";
for(int i=0;i<array.length;i++){
add_array+=array[i]+",";
}
tx3.setText(add_array);
Option option = (Option)intent.getSerializableExtra("class"); /*클래스*/
tx4.setText(option.getPhone());
tx5.setText(option.getAddr());
}
}
Option.class
package com.example.user.myintent;
import java.io.Serializable;
/**
* Created by user on 2016-12-22.
*/
public class Option implements Serializable{
String phone;
String addr;
public Option(){
}
public Option(String phone, String addr){
this.phone = phone;
this.addr = addr;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}
내용 출처 :
'모바일 앱 개발 > 안드로이드' 카테고리의 다른 글
[안드로이드] RecyclerView 와 Adapter (0) | 2021.04.12 |
---|---|
안드로이드 프로젝트 구조 (상세) (0) | 2021.04.09 |
안드로이드 기본 프로젝트 폴더 구조 (0) | 2021.04.09 |
댓글