안드로이드/이론

안드로이드 Intent 사용하기(2단계)

원원 2019. 4. 30. 21:31




안녕하세요 오늘 안드로이드 Intent 사용하기 2단계에서는 새로운 화면을 만들고 변수에 데이터를 넣어서 보내는걸 해보겠습니다



※ 이번 예제에서 사용할 intent 관련된 함수 (1단계부터 했던 함수는 제외했습니다)

※ A화면이 처음 화면이고 B화면은 A화면에서 띄운 화면입니다.




1.A화면에서 데이터를 변수에 저장해서 보내주는 B화면으로 보내는 함수

Intent putExtra (String name,Char value)

name에는 전달할 변수명을 써주고, value자리는 메소드오버로딩에 의해 다양한 자료형이 들어갈 수 있고 전달할 자료를 적으면 됩니다


2. A화면으로부터 B화면이 데이터를 받을때 사용하는 함수 

getIntent()

A화면에서 B화면으로 이동할때 B화면에서 getIntent()를 호출하여 값을 받는 함수



3. intent에서 보내는 값을 전달받을 함수(A화면에서 B함수)

String getStringExtra (String name)

name에는 받는 변수를 적으면되고 반환형은 그 자료





A화면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class MainActivity extends AppCompatActivity {
    Button btn;
    EditText et;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
 
 
        btn = findViewById(R.id.button2);
        et = findViewById(R.id.editText);
 
 
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(MainActivity.this,Main2Activity.class );
                i.putExtra("one",et.getText().toString());
                startActivity(i);
            }
        });
    }
 
}


B화면

Colored By Color Scripter

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Main2Activity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
 
        Button btn;
        TextView tv;
        tv = findViewById(R.id.textView3);
        btn = findViewById(R.id.button);
        Intent intent = getIntent();
        tv.setText(intent.getStringExtra("one"));
 
 
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });
 
 
    }
}