1. 개요

엑티비티간 데이터 통신을 위한 Intent라는 도구를 이용한다.

A엑티비티에서 Intent에 데이터를 저장 한 후

B엑티비티에서 Intent에 저장되어있는 데이터를 불러와 처리를한다.

 

2. 사용

MainActivity.Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        findViewById(R.id.mainButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, SubActivity.class);
                intent.putExtra("key""value");
                startActivity(intent);
            }
        });
    }
}
cs

mainButton이라는 버튼 리스너에 Intent를 생성해 putExtra("key", "value")를 이용해 데이터를 저장한다.

그리고 startActivity로 새로운 엑티비티를 활성화 한다.

 

SubActivity.Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class SubActivity extends AppCompatActivity {
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sub);
 
        Log.d("SubActivity""onCreate: "+getIntent().getStringExtra("key"));
        findViewById(R.id.subButton).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
    }
}
 
cs

활성화된 엑티비티에서 데이터를 불러오기위해 getIntent()를 사용한다.

그리고 get자료형Extra("key", "value") 로 자료를 불러오게 되는데 여기서 putExtra를 했던 자료형과 일치하지 않으면 에러를 발생하게 된다.

+ Recent posts