=================================
=================================
=================================
액티비티를 호출할 때는 startActivityForResult 메서드를 사용하며 인수로는 호출할 대상을 지정하는 Intent객체와 호출한 대상을 나타내는 식별자를 전달한다.호출한 대상을 나태내는 식별자는 리턴시에 누구에 대한 리턴인가를 구불할 때 사용한다. 여러 액티비티를 호출할 경우 리턴을 받는 메서드에서 어떤 액티비티에 대한 리턴인지를 구분할 수 있어야 하므로 호출되는 액티비티별로 구유의 번호를 붙여야 한다. 0이상의 중복되지 않는 정수를 넘기되 음수를 넘길 경우는 리턴을 받지 않겠다는 뜻이다.
startActivityForResult(Intent intent, int requestCode)
Intent intent = new Intent(CallActivity.this, SubActivity.class);
Intent.putExtra(“Key_name”, “send Message”);
startActivityForResult(Intent, 0);
인텐트는 액티비티간에 인수와 리턴값을 전달하는 도구로도 사용된다. 이때는 주로 Bundle 타입의 Extras를 활용하는데 이름과 값의 쌍으로 된 임의 타입의 정보를 원하는 개수만큼 전달 할 수 있다. 다음은 Extras에 값을 저장하는 메서드들 중 일부이다. 거의 모든 타입에 대해 오버로딩되어 있으며 배열이나 심지어 시리얼라이징 가능한 객체까지도 저장할 수 있다.
Intent.putExtra(String name, int value)
Intent.putExtra(String name, String value)
Intent.putExtra(String name, boolean value)
Name은 전달하는 인수에 대한 이름이되 중복되지만 않으면 자유롭게 붙일 수 있다. 가급적이면 인수의 의미를 명확하게 설명할 수 있는 이름을 붙이는 것이 유리하다. Extras에 저장된 값들은 다음 메서드로 꺼낸다.
Int getInt Extra(String name, int defaultValue)
String getString Extra(String name)
boolean getBooleanExtra(String name, boolean defaultValue)
값이 전달되지 않았을 경우 두 번째 인수로 지정한 디폴트가 리턴되며 문자열의 경우 null이 리턴된다. Extras는 입력뿐만 아니라 액티비티의 리턴값을 돌려줄 때도 사용할 수 있다.
호출된 액티비티는 처리가 끝나면 종료해야 하는데 종료하기전 호출한 액티비티에게 전달하자 하는 값을 setResult(int resultCode, Intent data)를 정의하고 finish()로 종료한다.
Intent intent = new Intent();
Intent.putExtra(“Key_name” , “send Message”);
setResult(RESULT_OK, intent)
finish();
setResult(int resultCode, Intent data)
requestCode는 인텐트의 작업 결과이다. 처리가 완료되었으면 RESULT_OK를 리턴하고 취소했다면 RESULT_CANCEL을 리턴한다. 두 번째 인수로는 리턴값이 실려 전달될 것이다.
호출한 액티비티에서 리턴값을 받기 위해서 는 onActivityResult(int requestCode, int resultCode, Intent data) 메서드를 구현해야 한다.
//호출한 엑티비티의 리턴값을 받는다protected void onActivityResult(int requestCode, int resultCode, Intent data){ switch(requestCode){ case Activity_set: if(resultCode == RESULT_OK){ //사용자 코드 } break; }
}
=================================
=================================
=================================
'스마트기기개발관련 > 안드로이드 개발' 카테고리의 다른 글
안드로이드 EditText 패스워드 모드 (0) | 2011.07.06 |
---|---|
안드로이드 View - setTag(), getTag() 뷰어안에 다른정보를 넣고 싶을때 (0) | 2011.07.05 |
안드로이드 스크린 키보드 있을때 back 버튼(되돌리기버튼) 이벤트 (11) | 2011.07.01 |
안드로이드 기초 관련 (0) | 2011.07.01 |
백그라운 작업자Thread 이용하기 (0) | 2011.07.01 |