Friday, 30 November 2012

Set Current Date to EditText file and onClick Datepicker dialog box


MainActivity.java


package com.datentime;

import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.DatePicker;
import android.widget.EditText;

public class MainActivity extends Activity {
    static final int DATE_DIALOG_ID = 0;
    private int mYear,mMonth,mDay;
    EditText editText;

    @SuppressWarnings("deprecation")
    @SuppressLint("SimpleDateFormat")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Calendar c=Calendar.getInstance();
        mYear=c.get(Calendar.YEAR);
        mMonth=c.get(Calendar.MONTH);
        mDay=c.get(Calendar.DAY_OF_MONTH);
        //String dateFormat = "dd/MM/yyyy";
        editText = (EditText) findViewById(R.id.text);
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        editText.setText( sdf.format(c.getTime()));

        editText.setOnClickListener(new OnClickListener() {



            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                showDialog(DATE_DIALOG_ID);

            }
        });


    }
        protected Dialog onCreateDialog(int id) {
            switch (id) {
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this,
                            mDateSetListener,
                            mYear, mMonth, mDay);

            }

            return null;

        }
        private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, int monthOfYear,
                    int dayOfMonth) {
                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;
                editText.setText(new StringBuilder().append(mDay).append("/").append(mMonth+1).append("/").append(mYear));

            }

        };



    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

}

Acitivity_main.xml


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >



    <EditText
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:focusableInTouchMode="false"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="36dp"
        android:layout_marginTop="36dp"
        android:ems="10"
        android:inputType="date" />

    <Button
        android:id="@+id/play"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:text="Button" />

</RelativeLayout>


11 comments:

  1. Thanks a lot for the tutorial. Could you please tell me what and where should I add some codes to change the theme (Theme.light) of DatePicker popup screen?

    ReplyDelete



  2. public void dpd(View v){
    Calendar c=Calendar.getInstance();
    DatePickerDialog dpd=new DatePickerDialog(this, new OnDateSetListener() {

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

    etdob.setText(dayOfMonth+"/"+monthOfYear+"/"+year);

    }
    }, c.get(Calendar.YEAR), c.get(Calendar.MONTH),c.get(Calendar.DAY_OF_MONTH));

    dpd.show();

    }

    ReplyDelete
  3. can u show how to do this in a fragment..

    ReplyDelete
    Replies
    1. i am using fragment which requires date on edittext when user clicks on edittext or a button

      Delete
  4. How do implement same on fragments

    ReplyDelete
  5. it's working Properly..Its been really awesome..Thanks for your help

    ReplyDelete
  6. getMenuInflater().inflate(R.menu.activity_main, menu);
    In R.menu its showing error

    ReplyDelete