안드로이드/참고 자료
[안드로이드] 인텐트 데이터(값) 전달
Geuny
2012. 3. 16. 02:46
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)가 발생한다.