안드로이드 개발 질문/답변
(글 수 45,052)
package com.sung.item_regi;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;
public class item_regi extends Activity implements OnClickListener {
/** Called when the activity is first created. */
TextView regi_tv2_2;
TextView regi_tv4_4;
TextView regi_tv5_5;
TextView regi_tv6_6;
TextView regi_tv7_7;
final static int REQUESTCODE = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.regi);
regi_tv2_2 = (TextView)findViewById(R.id.regi_tv2_2);
regi_tv4_4 = (TextView)findViewById(R.id.regi_tv4_4);
regi_tv5_5 = (TextView)findViewById(R.id.regi_tv5_5);
regi_tv6_6 = (TextView)findViewById(R.id.regi_tv6_6);
regi_tv7_7 = (TextView)findViewById(R.id.regi_tv7_7);
Button regi_save_btn = (Button)findViewById(R.id.regi_save_btn);
// Button regi_back_btn = (Button)findViewById(R.id.regi_back_btn);
regi_save_btn.setOnClickListener(this);
}
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(item_regi.this,item_regi_edit.class);
intent.putExtra("p2", regi_tv2_2.getText().toString());
intent.putExtra("p4", regi_tv4_4.getText().toString());
intent.putExtra("p5", regi_tv5_5.getText().toString());
intent.putExtra("p6", regi_tv6_6.getText().toString());
intent.putExtra("p7", regi_tv7_7.getText().toString());
startActivityForResult(intent, REQUESTCODE);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data){
switch (requestCode){
case REQUESTCODE:
if(requestCode == RESULT_OK)
{
regi_tv2_2.setText(data.getStringExtra("Result2"));
regi_tv4_4.setText(data.getStringExtra("Result4"));
regi_tv5_5.setText(data.getStringExtra("Result5"));
regi_tv6_6.setText(data.getStringExtra("Result6"));
regi_tv7_7.setText(data.getStringExtra("Result7"));
}
break;
}
}
}
package com.sung.item_regi;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public class item_regi_edit extends Activity implements OnClickListener {
/** Called when the activity is first created. */
EditText regiet_edit2;
EditText regiet_edit4;
EditText regiet_edit5;
EditText regiet_edit6;
EditText regiet_edit7;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.regi_edit);
Button regiet_save_btn = (Button) findViewById(R.id.regiet_save_btn);
regiet_save_btn.setOnClickListener(this);
regiet_edit2 = (EditText) findViewById(R.id.regiet_edit2);
Intent intent2 = getIntent();
regiet_edit2.setText(intent2.getStringExtra("p2"));
regiet_edit4 = (EditText) findViewById(R.id.regiet_edit4);
Intent intent4 = getIntent();
regiet_edit4.setText(intent4.getStringExtra("p4"));
regiet_edit5 = (EditText) findViewById(R.id.regiet_edit5);
Intent intent5 = getIntent();
regiet_edit5.setText(intent5.getStringExtra("p5"));
regiet_edit6 = (EditText) findViewById(R.id.regiet_edit6);
Intent intent6 = getIntent();
regiet_edit6.setText(intent6.getStringExtra("p6"));
regiet_edit7 = (EditText) findViewById(R.id.regiet_edit7);
Intent intent7 = getIntent();
regiet_edit7.setText(intent7.getStringExtra("p7"));
}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.regiet_save_btn:
Intent rintent2 = new Intent();
rintent2.putExtra("Result2", regiet_edit2.getText().toString());
setResult(RESULT_OK,rintent2);
Intent rintent4 = new Intent();
rintent4.putExtra("Result4", regiet_edit4.getText().toString());
setResult(RESULT_OK,rintent4);
Intent rintent5 = new Intent();
rintent5.putExtra("Result5", regiet_edit5.getText().toString());
setResult(RESULT_OK,rintent5);
Intent rintent6 = new Intent();
rintent6.putExtra("Result2", regiet_edit6.getText().toString());
setResult(RESULT_OK,rintent6);
Intent rintent7 = new Intent();
rintent2.putExtra("Result7", regiet_edit7.getText().toString());
setResult(RESULT_OK,rintent7);
finish();
break;
case R.id.regiet_back_btn:
setResult(RESULT_CANCELED);
finish();
break;
}
}
}결과 값이 리턴 되지 않습니다 창이 2번 뜨는 것도 같고...이리 저리 다 해봐도 현상이 똑같습니다...
고수님 부탁드리겠습니다




우선 Java세계의 메서드 작명법(법까지는 아닙니다만)을 보면 접두어를 보면 이 메서드가 어떻게 동작할 것인지를 할 수 있습니다.
set~~~ // 이 값으로 세팅해라
put~~~ // 이 값을 넣어라
add~~~ // 이 값을 추가해라
get~~~ // 이 값을 가져와라.
여기서 중요한건 put이나 add는 값을 추가한다는 의미가 강하지만 set은 대치(replace)한다는 의미가 강합니다.
위의 setResult(RESULT_OK,rintentX);는 사실상 RESULT_OK라는 플래스로 여러번 값을 대치시키는 과정입니다. rintent2를 넣고 이 값을 버리고 rintent4를 넣고 다시 이값을 버리고 rintent5를 넣고..이런 과정을 거치는 소스입니다.
하나의 intent만을 다시 넘긴다고 생각하시면 됩니다. 책을 가지고 싶으시면 어떤 책을 봐도 저런식으로 한경우가 없을것입니다. 다시한번 책이나 startActivityForResult관련된 예제들을 쭉 찾아보세요.