안드로이드/참고 자료

[안드로이드] 인텐트 데이터(값) 전달

Geuny 2012. 3. 16. 02:46

IntentCall.zip


Activity 간 데이터 전달하는 방법
/**호출받는 Activity 소스 코드*/
public class IntentCallee extends Activity implements View.OnClickListener{
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.intentcallee);
		
		Button button = (Button)findViewById(R.id.Close);
		button.setOnClickListener(this);
		
		this.setData();
	}

	private void setData() {
		// TODO Auto-generated method stub
		Intent intent = getIntent();
		
		String name = intent.getExtras().get("name").toString();
		String age = intent.getExtras().get("age").toString();
		
		TextView nameText = (TextView)findViewById(R.id.Name);
		nameText.setText(name);
		
		TextView ageText = (TextView)findViewById(R.id.Age);
		ageText.setText(age);
	}

	@Override
	public void onClick(View v) {
		// TODO Auto-generated method stub
		finish();
	}
}
/** 호출하는 Activity 소스 코드
public class IntentCaller extends Activity implements View.OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.intentcaller);
        
        Button button = (Button)findViewById(R.id.Send);
        button.setOnClickListener(this);
        
        
    }

	@Override
	public void onClick(View arg0) {
		// TODO Auto-generated method stub
		EditText nameEdit = (EditText)findViewById(R.id.Name);
		EditText ageEdit = (EditText)findViewById(R.id.Age);
		
		Intent intent = new Intent(this, IntentCallee.class);
		
		intent.putExtra("name", nameEdit.getText());
		intent.putExtra("age", ageEdit.getText());
		
		startActivity(intent);
	}
}
호출하는 Activity 와 호출받는 Activity에서

intent.putExtra("name", nameEdit.getText());↔intent.getExtras().get("name").toString();
putExtra의 "name"과 getExtras.get의 "name"같이 문자열은 일치되어야 한다.

intent.putExtra("age", ageEdit.getText()); ↔  intent.getExtras().get("age").toString(); putExtra의 "age"과 getExtras.get의 "age"같이 문자열은 일치되어야 한다.

일치되지 않으면 실행 오류(Runtime Error)가 발생한다.