我在尝试在 CalendarView 对象上使用 .setTime 时遇到问题,请参见下面的代码。
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;
}
}
当我跑步时,我在选择日期时收到此消息。02-17 15:50:30.501: E/MessageQueue-JNI(1098): java.lang.IllegalArgumentException: 时间不在美国东部标准时间 1900 年 1 月 1 日星期一 00:00:00 和 2100 年 12 月 31 日星期五 00:00:00 之间
炸毁 view.setDate(selDate.getTime());
我不太明白为什么 selDate.getTime() 对于 view.setDate() 来说不是有效的 long
任何人?