【发布时间】:2016-06-10 12:51:52
【问题描述】:
我创建了一个DateandTimePickerDialogueFragment,我正在从MainActivity 调用DateandTimePickerDialogueFragment。
我的问题是,如何将DateandTimePickerDialogueFragment 结果值发送到MainActivity。
MainActivity:
@Override
public void onClick(View v) {
if (v.getId() == R.id.buttonid) {
DateandTimePickerDialogueFragment dateandTimePickerDialogueFragment = new DateandTimePickerDialogueFragment();
dateandTimePickerDialogueFragment.show(getSupportFragmentManager(), "DateandTimePickerDialogueFragment");
}
}
DateandTimePickerDialogueFragment:
public class DateandTimePickerDialogueFragment extends DialogFragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return super.onCreateView(inflater, container, savedInstanceState);
}
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return displayDateDialogPicker(getActivity());
}
/**
* @param context
*/
private Dialog displayDateDialogPicker(Context context) {
int mYear, mMonth, mDay;
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dpd = new DatePickerDialog(context,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
int mymonth = monthOfYear + 1;
String mmmMonth = "", mmDate = "";
if (mymonth > 0 && mymonth < 10) {
mmmMonth = "0" + mymonth;
} else {
mmmMonth = "" + mymonth;
}
if (dayOfMonth > 0 && dayOfMonth < 10) {
mmDate = "0" + dayOfMonth;
} else {
mmDate = "" + dayOfMonth;
}
//YYYY-MM-DD
String finalDate = year + "-" + (mmmMonth) + "-" + mmDate;
Intent intentData = new Intent();
intentData.putExtra("Date", finalDate);
getTargetFragment().onActivityResult(getTargetRequestCode(), Activity.RESULT_OK, intentData);
}
}, mYear, mMonth, mDay);
dpd.show();
return dpd;
}
}
【问题讨论】:
-
你能写一个方法来更新你的类变量以获得结果吗?
标签: android android-dialogfragment android-datepicker datepickerdialog