CalendarView 개체에서 .setTime을 사용하는 데 문제가 있습니다. 아래 코드를 참조하십시오.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 : 월요일 Jan 01 00:00:00 EST 1900에서 Fri Dec 31 00:00:00 EST 2100
사이의 시간이 아님view.setDate (selDate.getTime())에서 블로잉하는 중; selDate.getTime()가 view.setDate()
누군가를 위해 유효한 길이 아닌 이유
꽤 이해가 안 돼요?
와
selDate.setYear(year);
및selDate.setYear(2014);
를 교체해야합니다, 자바/안드로이드에서 날짜와 함께 작동하는 가장 좋은 방법은 무엇인가? 선호하는 물건? –
개인적으로 저는'Date'와'Calendar'를 사용합니다. – mangusta