2017-08-18 28 views
11

月をカレンダービューに表示したいと考えています。私は試しましたアンドロイドカレンダービューで月の変化を検出する方法はありますか(ユーザーがカレンダーを別の月に変更したときなど)

calendarView.setOnDateChangeListener(new CalendarView.OnDateChangeListener() { 

     @Override 
     public void onSelectedDayChange(CalendarView view, int year, int month, 
             int dayOfMonth) { 
      int d = dayOfMonth; 
      int m = month; 
      Log.d("month", "" + m); 
      String curDate = String.valueOf(d); 

     } 
}); 

しかし、それはユーザーが月の日にクリックするときにのみトリガします。私が望むのは、ユーザーが変更された月を望む月を変更した場合(つまり、カレンダービューに表示された月)です。 何か助けていただければ幸いです。前もって感謝します。

答えて

7

私はAndroidのデフォルトのCalendarViewから、あなたが望むものを達成できないと思います。このためには、カスタムカレンダーやこの実装を提供するその他のライブラリを実装するか、月間にスワイプするためのリスナーやジェスチャーを提供する必要があります。それはあなたを助けている場合、このリンクを参照してください: Material-CalendeView

そして、これはサンプルコードです:

MaterialCalendarView calendarView = new MaterialCalendarView(getActivity()); 
calendarView.setOnMonthChangedListener(new OnMonthChangedListener() { 
    @Override 
    public void onMonthChanged(MaterialCalendarView widget, CalendarDay date) { 
      //Do something like this 
      Date date1 = date.getDate(); 
    } 
}); 

は、それはあなたのお役に立てば幸いです。

+0

素晴らしいです。ありがとう、私はこの問題の3日のように立ち往生しました。 –

+0

しかし、どのように私はこのようなCalendarDay {2017-8-1} –

+0

私の更新された答えを確認する日付をログにするとき私はそれを仲間解析するのですか?これで、Dateオブジェクトを使って何でもできます。 :-D – AndiM

関連する問題