如何通过单击按钮将活动中的选定日期(仅限第一个和最后一个日期)发送到另一个活动中的文本视图?



我是安卓新手。

我正在使用日历选取器视图作为选择日期范围的活动。

我要做的就是将选择的第一天和最后一天传递给另一个活动中的文本视图。

现在我有一个CalendarPickerActivity,你可以在下面看到(代码(,然后我有另一个叫做EventFiltersActivity的活动,我有一个TextView,它应该显示选择的第一天和最后一天

已经感谢您的耐心和帮助。

public class CalendarPickerActivity extends AppCompatActivity {
private CalendarPickerView calendar;
Button saveButton;
Button clearButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calendar_picker);
saveButton = (Button) findViewById(R.id.save_button);
clearButton = (Button) findViewById(R.id.resetta_button);
final Calendar nextYear = Calendar.getInstance();
nextYear.add(Calendar.YEAR, 10);
final Calendar lastYear = Calendar.getInstance();
lastYear.add(Calendar.YEAR, -10);
calendar = (CalendarPickerView) findViewById(R.id.calendar_picker);
final ArrayList<Integer> list = new ArrayList<>();
list.add(2);
calendar.getSelectedDates();

calendar.init(lastYear.getTime(), nextYear.getTime()) //
.inMode(CalendarPickerView.SelectionMode.RANGE)
.withSelectedDate(Calendar.getInstance().getTime());
//.withDeactivateDates(list);
//.withHighlightedDates(arrayList);
calendar.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() {
@Override
public void onDateSelected(Date date) {
Toast.makeText(getApplicationContext(), "Selected Date is : " + date.toString(), Toast.LENGTH_SHORT).show();
}
@Override
public void onDateUnselected(Date date) {
}
});
saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), EventFiltersActivity.class);
calendar.getSelectedDates();
}
});
}
}

使全局变量选定日期

String selectedDate;

现在将值分配给全局变量。

calendar.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() {
@Override
public void onDateSelected(Date date) {
selectedDate = date.toString();
}
@Override
public void onDateUnselected(Date date) {
}
});

并将其传递给意图。

saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(), EventFiltersActivity.class);
i.putExtra("date", selectedDate);
startActivity(i);
}
});

在事件过滤器活动中:

String getDate = getIntent().getStringExtra("date");

您可以使用通过 Intent 发送参数

在您的日历活动

saveButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),EventFiltersActivity.class);
i.putExtra("selectedDate",calendar.getSelectedDates().toString());
startActivity(i);
}
});

oncreateOptionsmenu的第二次活动

Intent ii = getIntent();
string getDate = ii.getStringExtra("selectedDate");
TextView tv = (TextView)findViewBId(R.id.textViewId);
tv.setText(getDate);

//设置全局变量

CalendarPickerView calProfileCalendar;
Button mRequestButton;
Date dateBeginningDate;
String dateBeginningString;
Date dateEndingDate;
String dateEndingString;

在创建设置按钮和日历上

calProfileCalendar = findViewById(R.id.calendar_view);
mRequestButton = findViewById(R.id.requestCalButtonId);
mRequestButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dateBeginningDate =  calProfileCalendar.getSelectedDates().get(0);
dateBeginningString = formatter.format(dateBeginningDate);
dateEndingDate = calProfileCalendar.getSelectedDates().get(calProfileCalendar.getSelectedDates().size() - 1);
dateEndingString = formatter.format(dateEndingDate);
//set information to pass to new intent
Intent intent = new Intent(CurrentActivity.this, NextActivity.class);
intent.putExtra("beginningDateString", dateBeginningString);
intent.putExtra("dateEndingString", dateEndingString);
startActivity(intent);
}
});

下一页活动.java//在创建中

getIncomingIntent();
private void getIncomingIntent() {
calDateBeginningString = (String) getIntent().getExtras().get("calBeginningDate");
calDateEndingString = (String) getIntent().getExtras().get("calEndingDate");
}