본문 바로가기

Android/Intent

안드로이드/Android Intent로 데이터 주고 받기

안드로이드/Android Intent로 데이터 주고 받기


호출한 액티비티

package arabiannight.tistory.com;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class TestIntentActivity extends Activity {
	
	private ArrayList mArrayList = new ArrayList();
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        mArrayList.add("하이");
        mArrayList.add("방가");
        mArrayList.add("놀러");
        mArrayList.add("가자");
        
        Intent intent = new Intent(TestIntentActivity.this,TestIntentNextActivity.class);
        intent.putExtra("1", "하이하이");
        intent.putExtra("2", 3);
        intent.putExtra("3", true);
        intent.putExtra("어레이", mArrayList);
        startActivityForResult(intent,1);
        
    }

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		super.onActivityResult(requestCode, resultCode, data);
		if(resultCode==RESULT_OK) // 액티비티가 정상적으로 종료되었을 경우
		{
			if(requestCode==1) // requestCode==1 로 호출한 경우에만 처리합니다.
			{
				Log.d("test", ""+data.getStringExtra("re"));
			}
		}
	}   
}


호출당한 액티비티
package arabiannight.tistory.com;

import java.util.ArrayList;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

public class TestIntentNextActivity extends Activity {
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.next);
        Log.d("onnew", "onCreate");
        // 현재 활성화된 액티비티를 시작하게 한 인텐트 호출
        Intent intent = getIntent(); 
        if(intent!=null){
        	ArrayList temp = intent.getStringArrayListExtra("어레이");
        	Log.d("test", "temp"+temp);
        	String temp2 = intent.getStringExtra("1"); 
        	Log.d("test", "temp2"+temp2);
        	int temp3 = intent.getIntExtra("2", 0);
        	Log.d("test", "temp3"+temp3);
        	boolean temp4 = intent.getBooleanExtra("3", false);
        	Log.d("test", "temp4"+temp4);
        } 
        
        intent.putExtra("re", "return");
        setResult(RESULT_OK,intent);
        finish();
        
    }
}


출력결과 
02-03 00:38:52.065: D/test(15658): temp[하이, 방가, 놀러, 가자]
02-03 00:38:52.065: D/test(15658): temp2하이하이
02-03 00:38:52.065: D/test(15658): temp33
02-03 00:38:52.065: D/test(15658): temp4true
02-03 00:38:52.080: D/test(15658): return