티스토리 뷰

//          **********************************메인 액티비티 *******************   // 
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 통신이랑도 비슷한 행위로 이루어진다.

저작자 표시
신고
댓글
댓글쓰기 폼