Android Calendar

0

I'm doing a date selector and when I select the date it starts in 1900, however the time starts at the current time. Is there any way that the date to choose starts on the current date?

Code:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

int longitudvector=0;
Context context;
// IP de mi Url
String IP = "http://alquilalo.esy.es";
// Rutas de los Web Services
String GET = IP + "/obtener_vehiculos.php";



String semail;

//String recogerdia;
String rdia,rmes,rano,rhora,rminutos;
String ddia,dmes,dano,dhora,dminutos;

//String recogerdiaentero;
Button bfecha,bhora;
EditText efecha,ehora;
public  int dia,mes,ano,hora,minutos;

Button b2fecha,b2hora;
EditText e2fecha,e2hora;
public  int dia2,mes2,ano2,hora2,minutos2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    context=this;


    //Toast.makeText(this, semail, Toast.LENGTH_SHORT).show();

    bfecha=(Button)findViewById(R.id.bfecha);
    bhora=(Button)findViewById(R.id.bhora);
    efecha=(EditText)findViewById(R.id.efecha);
    ehora=(EditText)findViewById(R.id.ehora);

    b2fecha=(Button)findViewById(R.id.b2fecha);
    b2hora=(Button)findViewById(R.id.b2hora);
    e2fecha=(EditText)findViewById(R.id.e2fecha);
    e2hora=(EditText)findViewById(R.id.e2hora);

    bfecha.setOnClickListener(this);
    bhora.setOnClickListener(this);

    b2fecha.setOnClickListener(this);
    b2hora.setOnClickListener(this);



}

@Override
public void onClick(View v) {
    if(v==bfecha){
        final java.util.Calendar c= java.util.Calendar.getInstance();
        dia=c.get(java.util.Calendar.DAY_OF_MONTH);
        mes=c.get(java.util.Calendar.MONTH);
        ano=c.get(java.util.Calendar.YEAR);

        DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                efecha.setText(dayOfMonth+"/"+(monthOfYear+1)+"/"+year);

                rdia= String.valueOf(dayOfMonth);
                rmes= String.valueOf(monthOfYear+1);
                rano= String.valueOf(year);

            }
        }
                ,dia,mes,ano);
        datePickerDialog.show();


    }
    if (v==bhora){
        final java.util.Calendar c= java.util.Calendar.getInstance();
        hora=c.get(java.util.Calendar.HOUR_OF_DAY);
        minutos=c.get(java.util.Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                ehora.setText(hourOfDay+":"+minute);
                rhora= String.valueOf(hourOfDay);
                rminutos= String.valueOf(minute);

            }
        },hora,minutos,false);
        timePickerDialog.show();
    }

    if(v==b2fecha){
        final java.util.Calendar c= java.util.Calendar.getInstance();
        dia2=c.get(java.util.Calendar.DAY_OF_MONTH);
        mes2=c.get(java.util.Calendar.MONTH);
        ano2=c.get(java.util.Calendar.YEAR);

        DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                e2fecha.setText(dayOfMonth+"/"+(monthOfYear+1)+"/"+year);

                ddia= String.valueOf(dayOfMonth);
                dmes= String.valueOf(monthOfYear+1);
                dano= String.valueOf(year);

            }
        }
                ,dia2,mes2,ano2);
        datePickerDialog.show();


    }
    if (v==b2hora){
        final java.util.Calendar c= java.util.Calendar.getInstance();
        hora2=c.get(java.util.Calendar.HOUR_OF_DAY);
        minutos2=c.get(java.util.Calendar.MINUTE);

        TimePickerDialog timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
            @Override
            public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                e2hora.setText(hourOfDay+":"+minute);
                dhora= String.valueOf(hourOfDay);
                dminutos= String.valueOf(minute);

            }
        },hora2,minutos2,false);
        timePickerDialog.show();
    }
}



}

My layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:text="Fecha de Recogida"
        android:id="@+id/bfecha"
        android:textColor="#FFFFFF"
        android:background="@drawable/botonshape2"
        />
    <Button
        android:layout_width="90dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="Hora"
        android:id="@+id/bhora"
        android:textColor="#FFFFFF"
        android:background="@drawable/botonshape2"
        />


</LinearLayout>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content">


    <EditText
        android:id="@+id/efecha"
        android:layout_width="200dp"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content" />

    <EditText
        android:layout_width="90dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_height="wrap_content"
        android:id="@+id/ehora"
        />


</LinearLayout>





<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <Button
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:text="Fecha de Devolución"
        android:id="@+id/b2fecha"
        android:textColor="#FFFFFF"
        android:background="@drawable/botonshape2"
        />
    <Button
        android:layout_width="90dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:text="Hora"
        android:id="@+id/b2hora"
        android:textColor="#FFFFFF"
        android:background="@drawable/botonshape2"
        />


</LinearLayout>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal" android:layout_width="wrap_content"
    android:layout_height="wrap_content">


    <EditText
        android:id="@+id/e2fecha"
        android:layout_width="200dp"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content" />

    <EditText
        android:layout_width="90dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_height="wrap_content"
        android:id="@+id/e2hora"
        />


</LinearLayout>





<Button
    android:text="continuar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/botoncalendariocontinuar" />

    
asked by javi fer 07.07.2017 в 16:25
source

2 answers

1

Solved, the order was wrong, it's year, month, day

,dia2,mes2,ano2);
    
answered by 07.07.2017 / 17:53
source
1

you are not assigning default values to your datetimepicker, you do this:

DatePickerDialog datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener()

I call it this way, it's a longer method but it works (at least for me): Instance:

setDate(v);//ponlo donde desees que se "lanze" el DateTimePicker

setDate method:

public void setDate(View view) {
        showDialog(999);//999 es ejemplo, puedes reemplazarlo por cualquier otro número
    }

onCreateDialog method:

@Override
    protected Dialog onCreateDialog(int id) {
        if (id == 999) {//este método recibe el showdialog de setDate, el número de setDate debe ser igual a el que comparas en el if
            return new DatePickerDialog(contexto, evento, año, mes, dia);//el evento que utilizo es el OnDateSetListener();. "año" "mes" "dia" son los valores que debes darle a el DatePickerDialog para que, cuando lo inicies, empieze desde esa fecha, y no 1900, como empieza el tuyo. 
        }
        return null;
    }

and finally, the OnDateSetListener:

  private DatePickerDialog.OnDateSetListener myDateListener = new DatePickerDialog.OnDateSetListener() {
            @Override
            public void onDateSet(DatePicker arg0, int arg1, int arg2, int arg3) {               
//código a realizar

        };

I hope my answer will be of your help.

    
answered by 07.07.2017 в 16:53