两个日期选择器在相同的活动android

Ved*_*hat 6 android android-datepicker android-dialogfragment

我有一项活动,我需要接受两个日期,开始日期和结束日期.我有两个按钮,点击它们会显示日期选择器.输入日期后,我需要使用SharedPreferences存储此日期.我正在使用本教程:

http://developer.android.com/guide/topics/ui/controls/pickers.html

我在两个日期选择器上看到了问题,但没有一个使用DialogFragment.他们使用已弃用的函数,我真的不想使用它们,因为我听说最好使用DialogFragment.

现在我该如何处理两个日期选择器?我怎么知道在onDateSet函数中点击了哪个按钮(startButton或endButton)?有没有办法在我点击按钮时创建的DialogFragment中存储视图ID,以便我可以在onDateSet中访问它?

任何帮助都会很棒,谢谢.

nik*_*kis 11

它可以这样做:

View.OnClickListener showDatePicker = new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        final View vv = v;

        DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                if (vv.getId() == R.id.StartDate //id of your StartDate button) {
                        //do the stuff
                } else //EndDate button was clicked {
                        //do the stuff
                }
            }
        }, year, month, day);
        datePickerDialog.show();
    }
};
startDate.setOnClickListener(showDatePicker);
endDate.setOnClickListener(showDatePicker);
Run Code Online (Sandbox Code Playgroud)

这里的主要思想是存储被View激活的OnClickEvent(在您的情况下按钮)并将该视图的ID与按钮的ID进行比较