Android Open Source - coursera-android-001 Add To Do Activity






From Project

Back to project page coursera-android-001.

License

The source code is released under:

MIT License

If you think the Android project coursera-android-001 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package course.labs.todomanager;
/*from  w ww  .  j  a  v  a2  s  .  c  om*/
import java.util.Calendar;
import java.util.Date;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.TimePicker;
import course.labs.todomanager.ToDoItem.Priority;
import course.labs.todomanager.ToDoItem.Status;

public class AddToDoActivity extends Activity {
  
  // 7 days in milliseconds - 7 * 24 * 60 * 60 * 1000
  private static final int SEVEN_DAYS = 604800000;

  private static final String TAG = "Lab-UserInterface";

  private static String timeString;
  private static String dateString;
  private static TextView dateView;
  private static TextView timeView;

  
  private Date mDate;
  private RadioGroup mPriorityRadioGroup;
  private RadioGroup mStatusRadioGroup;
  private EditText mTitleText;
  private RadioButton mDefaultStatusButton;
  private RadioButton mDefaultPriorityButton;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_todo);

    mTitleText = (EditText) findViewById(R.id.title);
    mDefaultStatusButton = (RadioButton) findViewById(R.id.statusNotDone);
    mDefaultPriorityButton = (RadioButton) findViewById(R.id.medPriority);
    mPriorityRadioGroup = (RadioGroup) findViewById(R.id.priorityGroup);
    mStatusRadioGroup = (RadioGroup) findViewById(R.id.statusGroup);
    dateView = (TextView) findViewById(R.id.date);
    timeView = (TextView) findViewById(R.id.time);

    // Set the default date and time

    setDefaultDateTime();

    // OnClickListener for the Date button, calls showDatePickerDialog() to show
    // the Date dialog

    final Button datePickerButton = (Button) findViewById(R.id.date_picker_button);
    datePickerButton.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        showDatePickerDialog();
      }
    });

    // OnClickListener for the Time button, calls showTimePickerDialog() to show
    // the Time Dialog

    final Button timePickerButton = (Button) findViewById(R.id.time_picker_button);
    timePickerButton.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        showTimePickerDialog();
      }
    });

    // OnClickListener for the Cancel Button, 

    final Button cancelButton = (Button) findViewById(R.id.cancelButton);
    cancelButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        log("Entered cancelButton.OnClickListener.onClick()");

        //Implement onClick().
                Intent returnIntent = new Intent();
                setResult(RESULT_CANCELED, returnIntent);
                finish();
      }
    });

    //OnClickListener for the Reset Button

    final Button resetButton = (Button) findViewById(R.id.resetButton);
    resetButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        log("Entered resetButton.OnClickListener.onClick()");

        //Reset data fields to default values
                mTitleText.setText("");
                mPriorityRadioGroup.check(mDefaultPriorityButton.getId());
                mStatusRadioGroup.check(mDefaultStatusButton.getId());
                setDefaultDateTime();
      
      
      }
    });

    // OnClickListener for the Submit Button
    // Implement onClick().
    
    final Button submitButton = (Button) findViewById(R.id.submitButton);
    submitButton.setOnClickListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        log("Entered submitButton.OnClickListener.onClick()");

        // Gather ToDoItem data  
        
        //Get Priority
        Priority priority = getPriority();

                        //Priority.values()[mPriorityRadioGroup.indexOfChild(findViewById(mPriorityRadioGroup.getCheckedRadioButtonId()))];

        //Get Status
        Status status = getStatus();

                //Status.values()[mStatusRadioGroup.indexOfChild(findViewById(mStatusRadioGroup.getCheckedRadioButtonId()))];

        //Title
        String titleString = mTitleText.getText().toString();

        // Date
        String fullDate = dateString + " " + timeString;

        // Package ToDoItem data into an Intent
        Intent data = new Intent();
        ToDoItem.packageIntent(data, titleString, priority, status, fullDate);

        //return data Intent and finish
                setResult(RESULT_OK, data);
                finish();

        
        
      }
    });
  }

  // Do not modify below here
  
  // Use this method to set the default date and time
  
  private void setDefaultDateTime() {

    // Default is current time + 7 days
    mDate = new Date();
    mDate = new Date(mDate.getTime() + SEVEN_DAYS);

    Calendar c = Calendar.getInstance();
    c.setTime(mDate);

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

    dateView.setText(dateString);

    setTimeString(c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE),
        c.get(Calendar.MILLISECOND));

    timeView.setText(timeString);
  }

  private static void setDateString(int year, int monthOfYear, int dayOfMonth) {

    // Increment monthOfYear for Calendar/Date -> Time Format setting
    monthOfYear++;
    String mon = "" + monthOfYear;
    String day = "" + dayOfMonth;

    if (monthOfYear < 10)
      mon = "0" + monthOfYear;
    if (dayOfMonth < 10)
      day = "0" + dayOfMonth;

    dateString = year + "-" + mon + "-" + day;
  }

  private static void setTimeString(int hourOfDay, int minute, int mili) {
    String hour = "" + hourOfDay;
    String min = "" + minute;

    if (hourOfDay < 10)
      hour = "0" + hourOfDay;
    if (minute < 10)
      min = "0" + minute;

    timeString = hour + ":" + min + ":00";
  }

  private Priority getPriority() {

    switch (mPriorityRadioGroup.getCheckedRadioButtonId()) {
    case R.id.lowPriority: {
      return Priority.LOW;
    }
    case R.id.highPriority: {
      return Priority.HIGH;
    }
    default: {
      return Priority.MED;
    }
    }
  }

  private Status getStatus() {

    switch (mStatusRadioGroup.getCheckedRadioButtonId()) {
    case R.id.statusDone: {
      return Status.DONE;
    }
    default: {
      return Status.NOTDONE;
    }
    }
  }

  // DialogFragment used to pick a ToDoItem deadline date

  public static class DatePickerFragment extends DialogFragment implements
      DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

      // Use the current date as the default date in the picker

      final Calendar c = Calendar.getInstance();
      int year = c.get(Calendar.YEAR);
      int month = c.get(Calendar.MONTH);
      int day = c.get(Calendar.DAY_OF_MONTH);

      // Create a new instance of DatePickerDialog and return it
      return new DatePickerDialog(getActivity(), this, year, month, day);
    }

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

      dateView.setText(dateString);
    }

  }

  // DialogFragment used to pick a ToDoItem deadline time

  public static class TimePickerFragment extends DialogFragment implements
      TimePickerDialog.OnTimeSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

      // Use the current time as the default values for the picker
      final Calendar c = Calendar.getInstance();
      int hour = c.get(Calendar.HOUR_OF_DAY);
      int minute = c.get(Calendar.MINUTE);

      // Create a new instance of TimePickerDialog and return
      return new TimePickerDialog(getActivity(), this, hour, minute,
          true);
    }

    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
      setTimeString(hourOfDay, minute, 0);

      timeView.setText(timeString);
    }
  }

  private void showDatePickerDialog() {
    DialogFragment newFragment = new DatePickerFragment();
    newFragment.show(getFragmentManager(), "datePicker");
  }

  private void showTimePickerDialog() {
    DialogFragment newFragment = new TimePickerFragment();
    newFragment.show(getFragmentManager(), "timePicker");
  }

  private void log(String msg) {
    try {
      Thread.sleep(500);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
    Log.i(TAG, msg);
  }

}




Java Source Code List

course.labs.GraphicsLab.BubbleActivity.java
course.labs.activitylab.ActivityOne.java
course.labs.activitylab.ActivityTwo.java
course.labs.contentproviderlab.MockLocationProvider.java
course.labs.contentproviderlab.PlaceDownloaderTask.java
course.labs.contentproviderlab.PlaceRecord.java
course.labs.contentproviderlab.PlaceViewActivity.java
course.labs.contentproviderlab.PlaceViewAdapter.java
course.labs.contentproviderlab.provider.PlaceBadgeContentProvider.java
course.labs.contentproviderlab.provider.PlaceBadgesContract.java
course.labs.contentproviderlab.provider.PlaceBadgesContract.java
course.labs.dangerousapp.DangerousActivity.java
course.labs.fragmentslab.FeedFragmentData.java
course.labs.fragmentslab.FeedFragment.java
course.labs.fragmentslab.FriendsFragment.java
course.labs.fragmentslab.MainActivity.java
course.labs.intentslab.ActivityLoaderActivity.java
course.labs.intentslab.ExplicitlyLoadedActivity.java
course.labs.intentslab.mybrowser.MyBrowserActivity.java
course.labs.locationlab.MockLocationProvider.java
course.labs.locationlab.PlaceDownloaderTask.java
course.labs.locationlab.PlaceRecord.java
course.labs.locationlab.PlaceViewActivity.java
course.labs.locationlab.PlaceViewAdapter.java
course.labs.notificationslab.DownloaderTask.java
course.labs.notificationslab.FeedFragment.java
course.labs.notificationslab.FriendsFragment.java
course.labs.notificationslab.MainActivity.java
course.labs.notificationslab.SelectionListener.java
course.labs.notificationslab.TestFrontEndActivity.java
course.labs.permissionslab.ActivityLoaderActivity.java
course.labs.permissionslab.BookmarksActivity.java
course.labs.permissionslab.GoToDangerousActivity.java
course.labs.todomanager.AddToDoActivity.java
course.labs.todomanager.ToDoItem.java
course.labs.todomanager.ToDoListAdapter.java
course.labs.todomanager.ToDoManagerActivity.java