본문 바로가기

안드로이드

엑티비티간의 데이터 전송

이번시간에는 액티비티간에 데이터 전송을 해보려고한다.



먼저 MainActivity 와 SubActivity의 xml을 만들자


xml을 다음과 같이 생성해주자.


(main_activity.xml)


(sub_activity.xml)



이제 액티비티간에 데이터 전송을 해야하는데 전송하기 전에 다음 개념부터 집고 넘어가자.


액티비티 간에 데이터 전송은 putExtra로 데이터를 intent에 넣어준다.





putExtrakey, value형식이다.


key value 형식이란 쉽게 말해서 열쇠 자물쇠 형식이라고 생각하면 쉬울거같다.


자물쇠를 열려면 맞는 열쇠로 돌려야 자물쇠가 열리는것처럼 보낸 부분과 받는부분 둘다 맞는 Key를 입력해야 받는부분에서 정확히 받을 수 있다.


사진출처: https://masterkeykorea.wordpress.com/2010/06/11/masterkey-or-lockpick/




그럼 이제 MainActivity에서 데이터를 넣어보자.


public class MainActivity extends AppCompatActivity {

Button main_btn;
TextView main_txt;

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

main_btn = findViewById(R.id.main_btn);

main_txt = findViewById(R.id.main_txt);

Button.OnClickListener onClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.main_btn:
Intent intent = new Intent(MainActivity.this, SubActivity.class);
intent.putExtra("text",main_txt.getText().toString());
startActivity(intent);
break;
}
}
};

main_btn.setOnClickListener(onClickListener);
}
}


다음으로는 SubActivity에서 데이터를 받아보자

public class SubActivity extends AppCompatActivity {

TextView sub_txt;

String get_text;

Intent get_intent;

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

sub_txt=findViewById(R.id.sub_txt);

get_intent = getIntent();
         
get_text=get_intent.getStringExtra("text");

sub_txt.setText(get_text);

}
}


이제 실행하고 Edittext에 전송할 text를 작성하고 Button을 눌러보자