티스토리 뷰
// **********************************메인 액티비티 ******************* //
package com.antbee.ActivityResult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private final static int SECOND_ACTIVITY = 2;
Button callButton;
ListAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
callButton = (Button) findViewById(R.id.button1);
callButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {//클릭을 할때마다
// TODO Auto-generated method stub
//새로운 Activity 를 만들기 위하여 초기화 해 선언한다.
Intent intent = new Intent();
//어떤 패키지인가? , 패키지 안에 어떤 객체를 셋팅 할 것인가?
intent.setClassName("com.antbee.ActivityResult", "com.antbee.ActivityResult.SecondActivity");
//AJAX통식 방식으로 다른 ACTIVITY와 통신하기 위해서는 startActivityForResult를 사용
startActivityForResult(intent, SECOND_ACTIVITY);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, intent);
Bundle extraBundle;
//MainActivity에서 부여한 번호표를 비교
if(requestCode == SECOND_ACTIVITY){
Log.d("SECOND_ACTIVITY_LOG","THIS CLOSE !!");//로그기록
//번호표를 부여한 Activity의 실행 여뷰, 켄슬, 오케이, 등등 실행에 관련된 행위 구분
if(resultCode == RESULT_OK){//세컨드 액티비티에서 이 값을 반환하는 코드가 동작 됐을때
extraBundle = intent.getExtras();//번들로 반환됐으므로 번들을 불러오면 셋팅된 값이 있다.
String str = extraBundle.getString("key1");//인자로 구분된 값을 불러오는 행위를 하고
Toast.makeText(this, str, Toast.LENGTH_SHORT).show();//토스트로 튕겨준다.
}
}
}
}
// ****************************서브 액티비티 *********************************//
package com.antbee.ActivityResult;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends Activity{
Bundle extraBundle;
Intent intent;
Button button1;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
button1 = (Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
extraBundle = new Bundle();
//번들을 만든다. GET, POST와 비슷한 형태로 인자과 값을 지정한다.
extraBundle.putString("key1", "this is key1");
extraBundle.putString("key2", "this is key2");
//번들을 새로 만들어 인텐트에 넣는다.
intent = new Intent();
intent.putExtras(extraBundle);
//날 호출한 Activity 에게 번들을 돌려준다.
this.setResult(RESULT_OK, intent);//RESULT_OK를 돌려주면 MainActivity 에서 받는다.
}
}
어렵게 생각하지말고 .... GET파라미터 전달 방법과 동일하다.
AJAX 통신이랑도 비슷한 행위로 이루어진다.
'Android' 카테고리의 다른 글
android 예제 중 ... throws Exception의 try catch (0) | 2011.03.29 |
---|---|
Android ListActivity 기본 예제(주석포함) (0) | 2011.03.29 |
android 내장 UI themes (0) | 2011.03.26 |
안드로이드 앱에서 타이틀 바를 감추기 (0) | 2011.03.26 |
아이폰 블루투스 개발관련. (0) | 2011.03.22 |
- Total
- Today
- Yesterday
- 시도 이름
- delete
- LAPM
- 안드로이드
- Non-Interactive
- app
- r
- json
- 삭제한 파일 복원
- 지역고유코드
- java
- MariaDB
- Android 개발
- 안드로이드 개발
- c++
- install
- API
- Android
- 시군구 이름
- Tomcat
- 리눅스
- MySQL
- rm으로 삭제
- apache
- 법정동코드
- 파일삭제
- Linux
- HTML
- JavaScript
- 앱개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |