인텐트 - 4대 컴포넌트간의 작업 수행을 위한 정보 전달 역할
ㄴ 기본 구성 요소 = Action, Data
ex)Intent intent = new Intent(Intent.ACTOIN_VIEW,Uri.parse(" ~ ")
Action = ACTOIN_VIEW
Data = URi,pase(" ~ ")
ㄴ 1. 명시적 인텐트 - 인텐트에 클랙스 객체나 컴포넌트 이름 지정하여 호출될 대상을 확실히 알 경우
2. 암시적 인텐트 - 호출될 대상의 속성을 지정했지만 호출 대상이 달라질 수 있는 경우
*1. 명시적 인텐트
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
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 button = (Button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), SubActivity.class);
startActivity(intent);
}
});
}
}
MainActivity에서 버튼을 클릭 했을 때 SubActivity로 화면 전환하는 코드
1) startActivity
Intent intent = new Intent(getApplicationContext(), SubActivity.class);
startActivity(intent);
이 부분은 새로운 인텐트 객체를 생성하면서 getApplicationContext()와 SubActivity.class를 파라미터로 넘김
getApplicationContext()는 현재 액티비티의 정보가 담겨있는곳
SubActivity.class는 호출할 컴포넌트
startActivity(intent)는 새로 열 액티비티로 부터 받는 응답을 처리할 필요가 없을 때 간단하게 사용
2) startActivityForResult
Intent intent2 = new Intent(getApplicationContext(), SubActivity.class);
startActivityForResult(intent2, 1);
startActivityForResult(intent2,1) 은 intent 이외에도 requestCode또한 넘김
*requestCode - (새로 연 액티비티 중 어떤 액티비티에서 온 것인지 구분하기 위해 사용)
onActivityResult를 사용하여 응답 처리
startActivityForResult 는 새로 연 액티비티로 부터 받는 응답을 처리할 필요가 있을 때 사용
*2 암시적 인텐트
Intent intent1 = new Intent(Intent.ACTION_VIEW, Uri.parse("Http://m.naver.com"));
startActivity(intent1);
naver 창을 호출하여 보여주는 코드로
인텐의 액션과 데이터를 지정은 했지만, 호출할 대상이 달라질 수 있기 때문에 암시적 인텐트 사용
ex) pdf파일을 열기 위해 pdf 파일을 열 수 있는 위젯들을 선택하는 창
'Android' 카테고리의 다른 글
Android] Toast 출력, 위치 설정 (0) | 2022.01.31 |
---|---|
Android] Button 클릭 이벤트 처리 (0) | 2022.01.24 |
Android] ImageButton 이미지 크기 조절 (0) | 2022.01.19 |
Android] Button 배경 색 설정 시 변경 안되는 경우 (0) | 2022.01.16 |
Android] Button 모양 설정 (0) | 2022.01.16 |