I'm having issues trying to use .setTime on a CalendarView object, see code below.
package com.example.calendar_test;
import java.util.Calendar;
import java.util.Date;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.text.format.DateFormat;
import android.text.format.Time;
import android.view.Menu;
import android.view.View;
import android.widget.CalendarView;
import android.widget.Toast;
import android.widget.CalendarView.OnDateChangeListener;
public class MainActivity extends Activity {
CalendarView cv;
@Override
protected void onCreate(Bundle savedInstanceState) {
long startDate;
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cv = (CalendarView) this.findViewById(android.R.id.content).findViewById(R.id.calendarView1);
startDate = cv.getDate();
cv.setDate(cv.getDate());
final Context context = this;
cv.setOnDateChangeListener(new OnDateChangeListener(){
public void onSelectedDayChange(CalendarView view, int year, int month, int dayOfMonth) {
Date selDate = new Date();
selDate.setMonth(month);
selDate.setYear(year);
selDate.setDate(dayOfMonth);
selDate.setTime(selDate.getTime());
view.setDate(selDate.getTime());
Date d = new Date();
d.setMonth(2);
d.setYear(2014);
d.setDate(22);
d.setTime(d.getTime());
if(view.getDate() == d.getTime()){
Toast.makeText(context, "You hit the 22", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
When I run I get this message when selecting a date. 02-17 15:50:30.501: E/MessageQueue-JNI(1098): java.lang.IllegalArgumentException: Time not between Mon Jan 01 00:00:00 EST 1900 and Fri Dec 31 00:00:00 EST 2100
Blowing up on view.setDate(selDate.getTime());
I don't quite understand why selDate.getTime() isn't a valid long for view.setDate()
Anyone?