Friday, 13 April 2012

HOW TO CREATE DATE AND TIME ON SAME PAGE WITH DIALOG VIEW


package com.android.futurediary;


import java.util.ArrayList;
import java.util.Calendar;


import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;


import android.widget.TextView;


public class TimePicker extends Activity implements OnClickListener

    {

     private TextView mTimeDisplay,mDateDisplay;
     private Button mPickTime , mPickDate,savebut  ;
     private EditText specialtimeline ,enterevent;
   
     private String providedeventname,providedeventdetails;
     private String hour,minute,year,month,day;
     private String time,date;
     private ArrayList<EventDetailFinder> EventDetailFinderObjArrayList;
   
     private int m,d,y;
   
     final Calendar c = Calendar.getInstance();
   
     private int mHour = c.get(Calendar.HOUR_OF_DAY);
     private int mMinute = c.get(Calendar.MINUTE);
   
     private int mYear = c.get(Calendar.YEAR);
     private int mMonth =c.get(Calendar.MONTH);
     private int mDay = c.get(Calendar.DAY_OF_MONTH);
  
    
     static final int DATE_DIALOG_ID = 2;

     static final int TIME_DIALOG_ID = 1;
   
     protected void onCreate(Bundle savedInstanceState)
         {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.noteentry);

        // capture our View elements
          specialtimeline=(EditText) findViewById(R.id.specialtime);
          enterevent =(EditText) findViewById(R.id.entrynote);
       
       
       
          mTimeDisplay = (TextView) findViewById(R.id.timeDisplay);
          mPickTime = (Button) findViewById(R.id.timebut);
       
          mDateDisplay = (TextView) findViewById(R.id.dateDisplay);
          mPickDate = (Button) findViewById(R.id.datebut);
       
          savebut = (Button)findViewById(R.id.addingnote);
          savebut.setOnClickListener(this);
         
          EventDetailFinderObjArrayList = new ArrayList<EventDetailFinder>();
        // add a click listener to the button
          mPickTime.setOnClickListener(new View.OnClickListener()
              {
                public void onClick(View v)
                  {
               
                    showDialog(TIME_DIALOG_ID);
               
                    final Calendar c = Calendar.getInstance();
                // get the current time
                    mHour = c.get(Calendar.HOUR_OF_DAY);
                    mMinute = c.get(Calendar.MINUTE);
                    updateDisplayTime();
                  }
             });

      
          mPickDate.setOnClickListener(new View.OnClickListener()
             {
           
                public void onClick(View v)
                      {
                // TODO Auto-generated method stub
                            showDialog(DATE_DIALOG_ID);
               
                           final Calendar p = Calendar.getInstance();
                    // display the current date
                        mYear = p.get(Calendar.YEAR);
                        mMonth = p.get(Calendar.MONTH);
                        mDay = p.get(Calendar.DAY_OF_MONTH);
       
                        updateDisplayDate();       
                       }
            });
      

      
           
     
     
      }

    //time part
    private void updateDisplayTime()
       {
        // TODO Auto-generated method stub
         mTimeDisplay.setText(
                    new StringBuilder()
                            .append(pad(mHour)).append(":")
                            .append(pad(mMinute)));
       }   


    private static String pad(int p)
      {
       
        if(p > 9)
          
            return String.valueOf(p);
       
        else
            return "0" + String.valueOf(p);

       }
    //date part
   
   
    private void updateDisplayDate()
       {
        mDateDisplay.setText(
            new StringBuilder()
                    // Month is 0 based so add 1
                    .append(mMonth + 1).append("-")
                    .append(mDay).append("-")
                    .append(mYear).append(" "));
      
                 m = mMonth + 1 ;
                 d = mDay ;
                 y= mYear;
             
      
       }
   
   
   
   
   
   
    private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener()
              
             {
               
                public void onTimeSet(android.widget.TimePicker view,int hourOfDay, int minute)
         
                   {
                    // TODO Auto-generated method stub
                   
                         mHour = hourOfDay;
                         mMinute = minute;
             
                         updateDisplayTime();
                   
                   
                   }

               

               

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

                         public void onDateSet(android.widget.DatePicker view, int year,
                                               int monthOfYear, int dayOfMonth) {
                             mYear = year;
                             mMonth = monthOfYear;
                             mDay = dayOfMonth;
                            
                             updateDisplayDate();
                         }
                     };            
   
       
                    
                     protected Dialog onCreateDialog(int id)
                       {
                            switch (id)
                             {
                          
                              case TIME_DIALOG_ID:
                                 return new TimePickerDialog(this,mTimeSetListener, mHour, mMinute, false);
                                                                         
                           
                             case DATE_DIALOG_ID:
                   
                                 return new DatePickerDialog(this,mDateSetListener, mYear, mMonth, mDay);
                            
                             }
                            return null;
                        }

                  
                    
                     public void onClick(View v)
                      {
                   
                     if(v.getId() == R.id.addingnote)
                          
                        {
                   
                         mainevent();
                        }  
                       
                     }
                       
                    public void  mainevent()
                         {
                   
                            providedeventname = (specialtimeline.getText().toString());
                            providedeventdetails =(enterevent.getText().toString());
                          
                            hour = Integer.toString(mHour);
                            minute = Integer.toString(mMinute);
                           
                            year = Integer.toString(y);
                            month = Integer.toString(m);
                            day = Integer.toString(d);
                           
                            time = hour.concat(":").concat(minute);
                            date =  month.concat("/").concat(day).concat("/").concat(year);
                           
                        
                           
                            StorageDB openHelperClass = new StorageDB(this);
                       
                            SQLiteDatabase sqliteDatabase = openHelperClass.getReadableDatabase();

                            Cursor cursor = sqliteDatabase.query(StorageDB.DIARY_EVENT_TABLE , null, null, null, null, null, null);
                   
                            startManagingCursor(cursor);

                            cursor.moveToFirst();
                     
                            EventDetailFinder  EventDetailFinderObj = new EventDetailFinder();
                              
                            EventDetailFinderObj.setEventName(providedeventname);
                            EventDetailFinderObj.setEventTime(time);
                            EventDetailFinderObj.setEventDate(date);
                            EventDetailFinderObj.setEventDetails(providedeventdetails);
                            //EventDetailFinderObj.setuGraduateEmail(providedUgraduateEmail);   
                       
                            EventDetailFinderObjArrayList.add(EventDetailFinderObj);

                   
                             insertUndergraduate(EventDetailFinderObj);
                         
                     }                         
                     
                     public void insertUndergraduate(EventDetailFinder givenEventDetailFinderObj)
                     
                       {

                    
                         StorageDB storageeventObj = new StorageDB(this);

                           SQLiteDatabase sqliteDatabaseevent = storageeventObj.getWritableDatabase();

                         ContentValues contentValues = new ContentValues();

                          contentValues.put(StorageDB.COLUMN_NAME_EVENT_NAME, givenEventDetailFinderObj.getEventName());
                          contentValues.put(StorageDB.COLLUMN_NAME_EVENTNOTE, givenEventDetailFinderObj.getEventDetails());
                           contentValues.put(StorageDB.COLLUMN_NAME_DATE, givenEventDetailFinderObj.getEventDate());
                         contentValues.put(StorageDB.COLLUMN_NAME_TIME, givenEventDetailFinderObj.getEventTime());
                    
                        //long affectedColumnId = sqliteDatabaseevent.insert(StorageDB.DIARY_EVENT_TABLE, null, contentValues);
              
                                                
                      
                         sqliteDatabaseevent.close();
                        
                        
                        }
                
                         
                   
                    
    }