在Android上的CalendarView中触摸选定日期时无法生成事件

时间:2011-10-22 01:13:48

标签: java android events view calendar

我在使用CalendarView时遇到了问题。

我希望activity1中的用户转到activity2中的日历,然后触摸日期,然后转到activity3。

目前,如果用户想要触摸已经选择的日期(默认使用今天的日期)继续前进,他就不能,因为日历的唯一事件是OnDateChangeListener,我无法让它工作使用OnClickOnTouch.

有人知道如何让它发挥作用吗?

这就是我的尝试:

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 :(得分:0)

您是否尝试通过CalendarView启用calendar.setClickable(true)可点击。这将启用点击事件。 我不知道它是否会针对各个日期执行此操作,但如果我理解正确,它会启用onClickListener

答案 1 :(得分:0)

this.calendarView.setOnDateChangeListener(this);