마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

activity data 공유 시 에러

0 추천
// A activity
Button calBtn = (Button) findViewById(R.id.market_SrCalBtn);
        calBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MarketActivity.this, DaySelectActivity.class);
                startActivity(intent);
                
                intent = getIntent();
                year = intent.getIntExtra("YEAR",2015);
                month = intent.getIntExtra("MONTH",1);
                day = intent.getIntExtra("DAY",1);

                SelectDayView = (TextView)findViewById(R.id.SelectDayView);
                SelectDayView.setText(year + "년 " + month + "월 " + day +"일");

// B activity
calendar.setOnDateChangeListener(new CalendarView.OnDateChangeListener() {
            @Override
            public void onSelectedDayChange(CalendarView view, int year, int month, int day) {
                Toast.makeText(DaySelectActivity.this, year + "/" + month + "/" + day, Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(DaySelectActivity.this, MarketActivity.class);
                intent.putExtra("YEAR", year);
                intent.putExtra("MONTH", month);
                intent.putExtra("day", day);
                startActivity(intent);
                finish();
            }
        });

 

문제는 이렇습니다.

A activity에서 B activity로 전환해서 B의 캘린더뷰에서 날짜를 선택해 A activity에 있는 변수에 선택한 날짜의 year, month, day 값을 넣어주려고 합니다.

왜 에러가 발생할까요...

 

 

 

taeyoung7315 (190 포인트) 님이 2015년 2월 10일 질문
코드가 불리는 순서데로 다시 정리해서 올려줘봐요...

1개의 답변

0 추천
다 잘못됬습니다. 
 
A액티비티
 
Button calBtn = (Button) findViewById(R.id.market_SrCalBtn);
        calBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MarketActivity.this, DaySelectActivity.class);
                startActivityForResult(intent, 0);
            }
});
 
 
 
//A액티비티에서 결과 받는 부분
 
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
  if(requestCode == 0){
       if(resultCode == Activity.RESULT_OK){
               year = intent.getIntExtra("YEAR",2015);
                month = intent.getIntExtra("MONTH",1);
                day = intent.getIntExtra("DAY",1);
 
                SelectDayView = (TextView)findViewById(R.id.SelectDayView);
                SelectDayView.setText(year + "년 " + month + "월 " + day +"일");
        }
  }
 
B액티비티 부분
  Intent intent = new Intent();
  intent.putExtra("YEAR", year);
  intent.putExtra("MONTH", month);
  intent.putExtra("day", day);
  this.setResult(Activity.RESULT_OK, intent);
  finish();
 
 

 

이드로이드 (22,930 포인트) 님이 2015년 2월 10일 답변
친절한답변감사합니다.!!!열심히해야겠어요 ㅎㅎ
this.setResult(Activity.RESULT_OK, intent); 에러가 발생합니다..
BActivity명.this.setResult(Activity.RESULT_OK, intent);

이렇게 해보세요.
...