Передача данных через намерение
Я пытаюсь передать выбранную дату из 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);