将日期从 Datepicker 传递到 Spinner 所选项目并在片段中加载 API 响应
Pass Date from Datepicker to Spinner selected item and load API Response in Fragment
我有一个正在运行的应用程序,其中用户 select Spinner 的一个选项,日期选择器自动打开用户 select 日期并查看数据。但是,我试图包含一个 Imagebutton(calendar),它打开一个日期选择器,而不是 selection 日期数据应该加载。 过程应该是:select来自微调器的选项 -> select 通过单击图像按钮来自日期选择器的日期 -> load/display 数据。
这是图像按钮的点击事件:
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar cldr = Calendar.getInstance();
int year = cldr.get(Calendar.YEAR);
int month = cldr.get(Calendar.MONTH);
int dayOfMonth = cldr.get(Calendar.DAY_OF_MONTH);
// date picker dialog
datePickerDialog = new DatePickerDialog(Dashboard.this,
AlertDialog.THEME_DEVICE_DEFAULT_DARK, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(year, month, dayOfMonth);
Date chosendate = calendar1.getTime();
calendar1.set(year, month, dayOfMonth);
chosendate = calendar1.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd",
Locale.JAPAN);
franchiseDate = formatter.format(chosendate);
}
}, year, month, dayOfMonth);
datePickerDialog.show();
datePickerDialog.getDatePicker().setMaxDate(cldr.getTimeInMillis());
}
这是微调器 onItemSelected 事件:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int
position, long l) {
selectedItem = spinner.getSelectedItem().toString();
selectedPosition = spinner.getSelectedItemPosition();
if (selectedItem.equals("Revenue by Centre")) {
// String centerDate = franchiseDate;
Bundle bundle = new Bundle();
bundle.putString("authToken", authToken);
bundle.putString("centreDate", franchiseDate);
spinner.setEnabled(false);
Centre centre = new Centre();
centre.setArguments(bundle);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.multiFrame, Centre.class,
bundle);
fragmentTransaction.commit();
}
数据显示在fragment中,date也是传给fragment的varclass。如果我在 imageButton.setOnClickListener 事件中包含 spinner.setOnItemSelectedListener,那么数据在我 select 新日期后加载,即 select 日期再次没有数据 select 日期数据正在加载之前 selected 日期。
已解决....调用 onDateSet 中的片段
我有一个正在运行的应用程序,其中用户 select Spinner 的一个选项,日期选择器自动打开用户 select 日期并查看数据。但是,我试图包含一个 Imagebutton(calendar),它打开一个日期选择器,而不是 selection 日期数据应该加载。 过程应该是:select来自微调器的选项 -> select 通过单击图像按钮来自日期选择器的日期 -> load/display 数据。
这是图像按钮的点击事件:
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final Calendar cldr = Calendar.getInstance();
int year = cldr.get(Calendar.YEAR);
int month = cldr.get(Calendar.MONTH);
int dayOfMonth = cldr.get(Calendar.DAY_OF_MONTH);
// date picker dialog
datePickerDialog = new DatePickerDialog(Dashboard.this,
AlertDialog.THEME_DEVICE_DEFAULT_DARK, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
Calendar calendar1 = Calendar.getInstance();
calendar1.set(year, month, dayOfMonth);
Date chosendate = calendar1.getTime();
calendar1.set(year, month, dayOfMonth);
chosendate = calendar1.getTime();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd",
Locale.JAPAN);
franchiseDate = formatter.format(chosendate);
}
}, year, month, dayOfMonth);
datePickerDialog.show();
datePickerDialog.getDatePicker().setMaxDate(cldr.getTimeInMillis());
}
这是微调器 onItemSelected 事件:
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int
position, long l) {
selectedItem = spinner.getSelectedItem().toString();
selectedPosition = spinner.getSelectedItemPosition();
if (selectedItem.equals("Revenue by Centre")) {
// String centerDate = franchiseDate;
Bundle bundle = new Bundle();
bundle.putString("authToken", authToken);
bundle.putString("centreDate", franchiseDate);
spinner.setEnabled(false);
Centre centre = new Centre();
centre.setArguments(bundle);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction =
fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.multiFrame, Centre.class,
bundle);
fragmentTransaction.commit();
}
数据显示在fragment中,date也是传给fragment的varclass。如果我在 imageButton.setOnClickListener 事件中包含 spinner.setOnItemSelectedListener,那么数据在我 select 新日期后加载,即 select 日期再次没有数据 select 日期数据正在加载之前 selected 日期。
已解决....调用 onDateSet 中的片段