인텐트
어플리케이션은 한 개이상의 액티비티가 필요하며, 액티비티들이 서로 데이터를 주고받을 수 있어야 합니다.
액티비티는 하나의 화면을 의미합니다.
인텐트는 다른 액티비티를 실행하거나 그 액티비티로 데이터를 전달할 수 있는 안드로이드 구성 요소 중 하나입니다.
아래 URL 에서는 intent 에 대한 개념과 사용법을 다루고 있습니다.
https://developer.android.com/reference/android/content/Intent
인텐트 사용방법
인텐트를 선언하는 방법
인텐트를 선언하는 방법입니다.
1
2
3
|
import android.content.Intent;
Intent intent = new Intent(PackageContext context, Class<?> clas);
|
cs |
Intent 생성자의 매개변수에는 다음과 같이 지정합니다.
매개변수 | 설명 |
PackageContext | 클래스를 구현하는 애플리케이션 패키지의 컨텍스트 |
Class | 인텐트에 사용할 구성 요소 클래스 다른 액티비티를 실행할 때 해당 액티비티의 클래스를 지정 |
인텐트로 다른 액티비티에 데이터를 전달하는 방법
putExtra 메소드에 키와 값을 지정하여 다른 액티비티가 실행될 때 데이터를 전달합니다.
putExtra 메소드는 데이터 종류별로 준비되어 있습니다.
"gildong" 의 경우 String 타입으로 전달되지만, 숫자를 입력하여 int 타입으로도 전달할 수 있습니다.
1
|
intent.putExtra("name", "gildong");
|
cs |
인텐트로 다른 액티비티를 실행하는 방법
startActivity 메소드로 다른 액티비티를 실행합니다.
1
|
startActivity(intent);
|
cs |
다른 액티비티에서 인텐트로 전달된 값을 받는 방법
gildong 의 경우 String 타입으로 전달되었기 때문에 getStringExtra 메소드를 사용하였습니다.
int 로 전달된 경우 Int 타입에 맞는 함수를 작성하면 됩니다.
뒤의 name 은 전달된 키 명칭을 입력해 주면 됩니다.
1
|
String name = getIntent().getStringExtra().("name");
|
cs |
인텐트 사용예제
MainActivity 에서 OtherActivity 클래스를 호출하는 방법
레이아웃은 따로 다루지 않겠습니다.
MainActivity Intent 에 OtherActivity 클래스를 지정한 후, 버튼이 클릭되면 OtherActivity 를 실행합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, OtherActivity.class);
Button bt1 = findViewById(R.id.button);
bt1.setOnClickListener(new View.OnClickListener(){
public void onClick (View v){
intent.putExtra("name", "gildong");
startActivity(intent1);
}
});
}
}
|
cs |
OtherActivity 에서는 MainActivity 에서 전달받은 name 키를 String name 에 저장합니다.
1
2
3
4
5
6
7
8
9
|
public class OtherActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other_main);
String name = getIntent().getStringExtra("name");
}
}
|
cs |
'Computer Language > Android' 카테고리의 다른 글
[Android] 안드로이드 match_parent 와 wrap_content 차이점 (0) | 2021.07.12 |
---|---|
[Android] 안드로이드 레이아웃 (0) | 2021.07.12 |
[Android] 안드로이드 위젯 (feat 텍스트뷰, 버튼) (0) | 2021.06.29 |
[Android] 안드로이드 액티비티와 생명주기 (0) | 2021.06.28 |
[Android] 안드로이드 로그 추가하는 방법 (0) | 2021.06.20 |