보기가 조금 난잡할 수 있지만, 찬찬히 읽어보면 아주 쉽게 적용 가능할 것이다.
명시적 인텐트, 되돌리기 X
호출하는 액티비티 코드
Intent intent = new intent(호출하는 액티비티, 호출되는 액티비티.class);
startActivity(intent);
호출되는 액티비티 코드
Intent intent = getIntent();
데이터 전송 없이 단순히 화면 전환을 위해서만 사용.
명시적 인텐트, Extra 데이터, 되돌리기 X
호출하는 액티비티 코드
Intent intent = new Intent(호출하는 액티비티, 호출되는 액티비티.class);
intent.putExtra(“data1”, “hello”); // 보낼 데이터1
intent.putExtra(“data2”, “100”); // 보낼 데이터2
startActivity(intent);
호출되는 액티비티 코드
Intent intent = getIntent(); // 자신을 실행시킨 인텐트 획득
String data1 = intent.getStringExtra(“data1”); // 넘어온 데이터 획득
int dat2 = intent.getIntExtra(“data2”, 0); // 넘어온 데이터 획득22 // 0은 디폴트값..
새로 데이터를 넘기고 싶다면, 다른 인텐트를 생성해줘야 한다. 이전 액티비티로 다시 보내려면,되돌리기를 사용하면 되므로, 다음 액티비티로 넘길 경우에 그렇게 하자.
명시적 인텐트, 되돌리기
호출하는 액티비티 코드
Intent intent = new Intent(호출하는 액티비티.this , 호출되는 액티비티.class);
startActivityForResult(intent, REQUESTCODE); // REQUESTCODE는 1 이상, 임의의 수. 분기를 위함.
여러 개의 액티비티를 동시에 분기를 나눠 다루기 위해, 쫙 뿌려주고 if라던지 switch로 판단.
호출되는 액티비티 코드 (되돌리기 시에는 자신을 실행시킨 인텐트에 바로 결과 데이터를 넣음)
Intent intent = getIntent(); // 자신을 실행시킨 인텐트 획득
Intent.putExtra(“location”, textView.getText().toString()); // 돌려보낼 데이터 저장.
setResult(RESULT, intent); // 돌려보낼 상태를 저장. 업무 수행 결과 추가. 정상인지 실패인지..
if(작동잘됨)
RESULT = 0;
Else if(작동실패)
RESULT = 1;
if(requestCode ==
if(resultCode == 0 )
else if(resultCode == 1)
*finish(); // 바로 쓰지 말고, 뒤로가기 혹은 어떤 이벤트의 처리로 끝내기를 한다.
호출한 액티비티 코드
@Override
Protected void onActivityResult(int requestCode, int resultCode, Intent data){
If(requestCode == 10 && resultCode == RESULT_OK){
String location = data.getStringExtera(“location”);
}
}
인텐트 필터
자바.
Intent intent = new Intent();
intent.setAction(“com.some.ACTION_VIEW”);
intent.addCategory(“com.some.category.MYCATEGORY”) // 직접 안 써도 DEFAULT 자동생성
intent.setData(Uri.parse(“geo:”));
startActivity(intent);
<인텐트 필터, 태그>
<activity android:name=”.SomeActivity”>
<intent-filter>
<action android:name=”com.some.ACTION_VIEW”/>
//<category android:name=”android.intent.category.DEFAULT/> // 디폴트는 예외 없이 무조건 다 넣는다!!!
<category android:name=”android.intent.category.MYCATEGORY/>
<data android:scheme”geo”/>
<intent-filter>
</activity>
'개발자 지식 > 안드로이드' 카테고리의 다른 글
[안드로이드] 파일에 읽고 쓰기(입출력, I/O) 완벽 정리 (0) | 2020.09.11 |
---|---|
[안드로이드] 탭레이아웃, 뷰페이저, 리사이클러 뷰 예제 해설 (0) | 2020.09.11 |
[안드로이드] 배경 색깔 변경하기 (setBackgroundColor) (0) | 2020.09.11 |
[안드로이드] Constraint Layout 사용법 part. 2 (0) | 2020.09.11 |
[안드로이드] Constraint Layout 사용법 part. 1 (0) | 2020.09.11 |