#java #android #events #view #calendar
#java #Android #Мероприятия #Вид #Календарь
Вопрос:
Я столкнулся с проблемой при использовании CalendarView.
Я хочу, чтобы пользователь, который находится в activity1, зашел в календарь в activity2, а затем коснулся даты, а затем перешел к activity3.
В настоящее время, если пользователь хочет коснуться уже выбранной даты (по умолчанию он использует сегодняшнюю дату), чтобы двигаться дальше, он не может, потому что единственным событием для календаря является OnDateChangeListener
, и я не могу заставить его работать с OnClick
или OnTouch.
Кто-нибудь знает способ заставить это работать?
Это то, что я пробовал:
public class CalendarioActivity extends Activity {
private CalendarView calendar;
@Override
protected void onCreate(Bundle SavedInstanceState) {
super.onCreate(SavedInstanceState);
calendar = new CalendarView(this);
calendar.setOnDateChangeListener(_DateSetListener);
calendar.setOnClickListener(_OnClickListener);
setContentView(calendar);
}
private OnClickListener _OnClickListener = new OnClickListener() {
public void onClick(View v) {
Date date = new Date(calendar.getDate());
Intent i=new Intent(CalendarioActivity.this,SelecionarHoraActivity.class);
i.putExtra("data",
new int[] {date.getDay(),date.getMonth(),date.getYear()});
startActivity(i);}};
private OnDateChangeListener _DateSetListener = new OnDateChangeListener() {
public void onSelectedDayChange(CalendarView view,
int year,
int month,
int dayOfMonth) {
Intent i = new Intent(CalendarioActivity.this,
SelecionarHoraActivity.class);
i.putExtra("data", new int[] {dayOfMonth, month, year});
startActivity(i);}};
}
Ответ №1:
Вы пробовали включить CalendarView
как интерактивную через calendar.setClickable(true)
. Это включило бы события щелчка. Я не знаю, будет ли это сделано для отдельных дат, но это позволит вам onClickListener
, если я правильно понимаю.
Ответ №2:
this.calendarView.setOnDateChangeListener(this);