【问题标题】:How to have multiple datepickers on one Android screen?如何在一个 Android 屏幕上拥有多个日期选择器?
【发布时间】:2014-01-09 17:10:42
【问题描述】:

我在我的 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,一切正常。在另一个屏幕中,我现在想要两个日期相邻,用户都可以选择。不幸的是,回调不知道用户从两个日期中的哪一个开始日期选择器片段。

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

【问题讨论】:

  • 您应该为每个日期选择器传入不同的侦听器。尝试将侦听器设置为内联,而不是用整个片段引用它。当我回到电脑时,我会给你一些代码。

标签: android android-fragments datepicker


【解决方案1】:

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

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

顺便说一句,您可以在这里找到不同的方法:

Multiple DatePickers in same activity

【讨论】:

    【解决方案2】:

    试试这样的:

    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");
    

    【讨论】:

      猜你喜欢
      • 2020-03-31
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多