Невозможно создать событие при касании выбранной даты в CalendarView на Android - PullRequest
2 голосов
/ 22 октября 2011

Я столкнулся с проблемой при использовании CalendarView.

Я хочу, чтобы пользователь, который находится в занятии 1, зашел в календарь в занятии 2, затем коснулся даты, затем перешел к занятию 3.

В настоящее время, если пользователь хочет перейти к уже выбранной дате (по умолчанию он использует сегодняшнюю дату), он не может этого сделать, потому что единственным событием для календаря является 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);}}; 
}

Ответы [ 2 ]

0 голосов
/ 08 июня 2012
this.calendarView.setOnDateChangeListener(this);
0 голосов
/ 31 октября 2011

Вы пытались включить CalendarView как активируемый через calendar.setClickable(true). Это включило бы события щелчка. Я не знаю, будет ли он делать это для отдельных дат, но он включит ваш onClickListener, если я правильно понимаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...