공부일지
231122 (Android)
CD가참둥그렇다
2023. 11. 22. 13:51
Intent에 정보를 추가하여 액티비티 전환하기
- intent.putextra 를 이용하여 다양한 값을 넘길 수 있다.
- intent.getStringExtra(**"strkey"**) 처럼 값을 이용할 수 있다. 2번째 파라미터를 넣으면 해당 키의 값이 없는 경우의 값을 설정할 수 있다.
- 일반 클래스를 putextra를 이용하여 전송할 때 (dto등) 직렬화가 필욯다.
- 직렬화 : 객체가 가진 데이터 부분을 바이트 형태로 일자로 정리하여 데이터 부분만 전송한다.
- 다른 플랫폼에서 메소드가 필요 없기 때문에 데이터만 전송이 필요하다.
- intent.getSerializableExtra 를 통해 값을 다시 dto에 담을 수 있다.
- 다시 가져올 때에는 강제캐스팅이 필요하다.
인텐트의 종류
- 명시적 인텐트 : 액티비티 전환의 이전 이후 모두를 알고 있는 경우를 말한다.
- 실행하려는 클래스명을 정확하게 담는다.
- 암시적 인텐트 : 실행하고자 하는 작업이 있을 때 안드로이드 기기에서 그 작업을 수행할 수 있는 앱을 호출하는 방식
- 액션만 지정해야 한다.
암시적 인텐트를 사용한 전화 연결
Intent(Intent.ACTION_DIAL, Uri.parse("tel:/"+edt_phone.getText().toString()))
- uri는 해당 액티비티에 보내는 명령 정보를 말한다.
- Intent.ACTION에 여러가지 액션의 예시가 있다.
다른 예시
if(v.getId()==R.id.btn_find){
Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
intent.putExtra(SearchManager.QUERY, edt_find.getText().toString());
startActivity(intent);
} else if(v.getId()==R.id.btn_sms){
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("smsto:"+Uri.encode("010-1234-5678")));
intent.putExtra("sms_body", edt_sms.getText().toString());
startActivity(intent);
}
- 안드로이드 다른 액션 사용법
- Android Intent Action 검색 시 여러가지 사용법을 알 수 있다.
onclicklistener
- 액티비티에 onclicklistener를 상속 받아서 오버라이드 하면 onclick메소드를 미리 만들어 둘 수 있다.
- setonclicklistener(this)로 호출 가능하다.