在datepicker中设置日期

时间:2015-11-19 02:53:08

标签: android datepicker

我的datepicker Android有问题。我试图在textView中设置datePicker值,但它不起作用。

这是我的代码:

tv_title.setText("DETAIL PELANGGAN");
            pelanggan = (Pelanggan) 

    getIntent().getExtras().getSerializable("plgan");
                pos = (Integer) getIntent().getExtras().getSerializable("pos");

                et_ktp.setText(pelanggan.getKtp());
                et_name.setText(pelanggan.getNama());
                et_address.setText(pelanggan.getAlamat());
                et_ibuKandung.setText(pelanggan.getIbu_kandung());
                tv_birthdate.setText(pelanggan.getTgl_lahir());
                addListenerOnButton();

                arDate = pelanggan.getTgl_lahir().split("-");
                Log.d("Tanggal", arDate[2]+"Das");

                if(arDate[2].length() > 4)
                {
                    arDate[2] = arDate[2].substring(0,4);
                }

                Log.d("Tanggal", arDate[2]+"Ar");
                setCustomerCurrentBirthdate();

和void setCustomerCurrentBirthdate()是

public void setCustomerCurrentBirthdate()
    {
        datePicker = (DatePicker) findViewById(R.id.dp_birthdate);

        year = Integer.parseInt(arDate[2]);
        month = Integer.parseInt(arDate[1])+1;
        day = Integer.parseInt(arDate[0]);

        datePicker.init(year, month, day, null);
    }

对于xml of datePicker是

<DatePicker
        android:id="@+id/dp_birthdate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:visibility="gone"
        android:layout_marginTop="10dp"
        android:textColor="#0055FF"
        android:layout_marginLeft="40dp">
    </DatePicker>

问题是当datePicker出现时,它显示当前日期,而不是我在setCustomerCurrentBirthdate()中设置的日期。 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

您已经在XML中初始化DatePicker,并使用当前日期自动设置。

在更改公开程度之前,请先使用datePicker.updateDate(year, month, day)代替datePicker.init(year, month, day, null)

答案 1 :(得分:-1)

由于我收到了@Nicholas Tee的建议,我有一个想法,就是设置我的datePicker。

public void addListenerOnButtonCustomerBirth(final String[] arDate)
    {

        tv_birthdate.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View v)
            {
                final Calendar c = Calendar.getInstance();
                year = Integer.parseInt(arDate[2]);
                month = Integer.parseInt(arDate[1])-1;
                day = Integer.parseInt(arDate[0]);

                showDialog(DATE_DIALOG_ID);
            }
        });
    }

并且为了调用void,这是使用它的方式

arDate = tv_birthdate.getText().toString().split("-");

            if(arDate[2].length() > 4)
            {
                arDate[2] = arDate[2].substring(0,4);
            }

            addListenerOnButtonCustomerBirth(arDate);

确实这太业余了,但无论如何都有效。如果它可以帮助其他

,我会很高兴