如何设置两个或多个DatePicker并将其显示在TextView上? [英] How to set two or more DatePicker and Display it on TextView?

查看:74
本文介绍了如何设置两个或多个DatePicker并将其显示在TextView上?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在单个屏幕中设置了三个 DatePicker 。它工作正常,但是问题是,当我在所有其他datepicker的Textview中设置的那个日期日期设置了一个 DatePicker 时。

I set Three DatePicker in single Screen. it is working properly, but the problem is that while i set one DatePicker at that tym date is set in all other datepicker's Textview.

此处 Main.Java

    package com.example.sachin.datepicker;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;

import com.wdullaer.materialdatetimepicker.date.DatePickerDialog;

import java.util.Calendar;

public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener {

        EditText openingdate,Birthdate,Anniversary;
        Calendar calendar ;
        DatePickerDialog datePickerDialog,datePickerDialog1 ;
        int Year, Month, Day ;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                openingdate = (EditText)findViewById(R.id.openingdate);
                Birthdate = (EditText)findViewById(R.id.Birthdate);
                Anniversary = (EditText)findViewById(R.id.Anniversary);

                calendar = Calendar.getInstance();
                Year = calendar.get(Calendar.YEAR) ;
                Month = calendar.get(Calendar.MONTH);
                Day = calendar.get(Calendar.DAY_OF_MONTH);

                Birthdate.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                                datePickerDialog1 = DatePickerDialog.newInstance(MainActivity.this, Year, Month, Day);
                                datePickerDialog1.setThemeDark(false);
                                datePickerDialog1.showYearPickerFirst(false);
                                datePickerDialog1.setAccentColor(Color.parseColor("#009688"));
                                datePickerDialog1.setTitle("Select Date From DatePickerDialog");
                                datePickerDialog.show(getFragmentManager(), "DatePickerDialog");
                        }
                });
                openingdate.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View view) {
                                datePickerDialog = DatePickerDialog.newInstance(MainActivity.this, Year, Month, Day);
                                datePickerDialog.setThemeDark(false);
                                datePickerDialog.showYearPickerFirst(false);
                                datePickerDialog.setAccentColor(Color.parseColor("#009688"));
                                datePickerDialog.setTitle("Select Date From DatePickerDialog");
                                datePickerDialog.show(getFragmentManager(), "DatePickerDialog");
                        }
                });
        }
        @Override
        public void onDateSet(DatePickerDialog view, int Year, int Month, int Day) {
                String date = "Selected Date : " + Day + "-" + Month + "-" + Year;
                openingdate.setText(date);
                String date1 = "Selected Date : " + Day + "-" + Month + "-" + Year;
                Birthdate.setText(date1);
                Toast.makeText(MainActivity.this, date, Toast.LENGTH_LONG).show();
        }



}

我应该在这里更改

  @Override
    public void onDateSet (DatePickerDialog view,int Year, int Month, int Day){
                    String date1 = "Selected Date : " + Day + "-" + Month + "-" + Year;
                    Birthdate.setText(date1);
                    Toast.makeText(MainActivity.this, date1, Toast.LENGTH_LONG).show();
            }



    @Override
    public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {

            String date1 = "Selected Date : " + Day + "-" + Month + "-" + Year;
            Birthdate.setText(date1);
            Toast.makeText(MainActivity.this, date1, Toast.LENGTH_LONG).show();
    }

我尝试过这种方式,但是当我选择一个日期时,它却无法正常工作将在其他Datepicker的TextView中设置。

I tried this way but it is not working, when i select one date it will set in other Datepicker's TextView.

推荐答案

您需要制作2个单独的DatePicker对话框

You need to make 2 separate DatePicker Dialogs

设为2位听众

int from_year, from_month, from_day,to_year, to_month, to_day; //initialize them to current date in onStart()/onCreate()
DatePickerDialog.OnDateSetListener from_dateListener,to_dateListener;

然后实施

 from_dateListener = new OnDateSetListener(){

            public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {

                          ...

                }
            }

        };
        to_dateListener = new OnDateSetListener(){
            public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {
                .....
            }
        };

这篇关于如何设置两个或多个DatePicker并将其显示在TextView上?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆