Передача данных через намерение

Я пытаюсь передать выбранную дату из CalendarView через намерение из действия № 1 в мероприятие № 2. Действие №2 открывается без проблем, но выбранная дата не отображается.

Вот код для деятельности № 1:

         String syear = Integer.toString(year);
         String smonth = Integer.toString(month);
         String sday= Integer.toString(day);

         Intent myIntent = new Intent(CalendarActivity.this, CalendarDate.class);
         Bundle extras = new Bundle();
         myIntent.putExtra(syear, "currentyear");
         myIntent.putExtra(smonth,"currentmonth");
         myIntent.putExtra(sday,"currentday");
         myIntent.putExtras(extras);
         CalendarActivity.this.startActivity(myIntent);

и это код для деятельности № 2:

Bundle extras = getIntent().getExtras();

    String dyear = extras.getString("currentyear");
    String dmonth = extras.getString("currentmonth");
    String dday = extras.getString("currentday");


    TextView textView = new TextView(this);
    textView.setTextSize(40);
    textView.setText(dday);
    textView.setText(dmonth);
    textView.setText(dyear);

    setContentView(textView);

Что я делаю неправильно?

2 ответа

Решение

Так должно быть

    myIntent.putExtra("currentyear",syear);
    myIntent.putExtra("currentmonth",smonth);
    myIntent.putExtra("currentday",sday);

Также используйте append

    textView.append(dday);
    textView.append(dmonth);
    textView.append(dyear);

В деятельности № 1 есть, как это.

     myIntent.putExtra("currentyear", syear);
     myIntent.putExtra("currentmonth",smonth);
     myIntent.putExtra("currentday",sday);
     myIntent.putExtras(extras);

А в активе № 2 Всегда ставьте нулевую проверку при чтении из дополнений.

есть как это.

Bundle extras = getIntent().getExtras();
if(extras!=null){
String dyear = extras.getString("currentyear");
String dmonth = extras.getString("currentmonth");
String dday = extras.getString("currentday");
}


TextView textView = new TextView(this);
textView.setTextSize(40);
textView.setText(dday);
textView.setText(dmonth);
textView.setText(dyear);

setContentView(textView);
Другие вопросы по тегам