如何在一个Android屏幕上拥有多个日期选择器?

时间:2014-01-09 17:10:42

标签: android android-fragments datepicker

我在Android应用中创建了一个屏幕,其中包含一个像这样的日期选择器:

    TextView userDateView = (TextView) getView().findViewById(R.id.text_user_date);
    userDateView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DatePickerFragment newFragment = new DatePickerFragment();
            newFragment.setListner(OverviewFragment.this);
            newFragment.show(getFragmentManager(), "datePicker");
        }
    });

我创建了一个回调函数,它接收日期并更新userDateView,这一切都正常。在另一个屏幕中,我现在希望在彼此旁边有两个日期,用户可以选择这两个日期。不幸的是,回调不知道用户启动datepicker片段的两个日期中的哪一个。

有人知道我怎么能知道datepickerFragment从哪个按钮开始?欢迎所有提示!

2 个答案:

答案 0 :(得分:1)

一种简单的方法是为每个DatePickerFragment提供一个参数,并将此参数发送回您的回调,例如Activity.onActivityResult上的requestCode。

了解如何为Fragments提供参数: http://developer.android.com/reference/android/app/Fragment.html#setArguments(android.os.Bundle)

顺便说一下,你可以在这里找到一种不同的方法:

Multiple DatePickers in same activity

答案 1 :(得分:0)

尝试这样的事情:

DatePickerFragment newFragment = new DatePickerFragment();
newFragment.setListner(new DatePickerDialog.OnDateSetListener() {
    @Override
        public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)    {}
    });
newFragment.show(getFragmentManager(), "datePicker");