日历

1、依赖:
//日历

implementation 'com.prolificinteractive:material-calendarview:1.4.0'

2、布局控件:

<com.prolificinteractive.materialcalendarview.MaterialCalendarView
    android:id="@+id/materialCalendarView"
    app:mcv_showOtherDates="all"
    app:mcv_selectionColor="@color/blue"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"></com.prolificinteractive.materialcalendarview.MaterialCalendarView>

3、findViewById

//日历
materialCalendarView = (MaterialCalendarView) findViewById(R.id.materialCalendarView);

4、各种设置:

Calendar calendar = Calendar.getInstance();
materialCalendarView.state().edit()
        .setFirstDayOfWeek(Calendar.MONDAY)
        .setMinimumDate(CalendarDay.from(2013,4,3))
        .setMaximumDate(CalendarDay.from(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),calendar.get(Calendar.DATE)))
        .setCalendarDisplayMode(CalendarMode.MONTHS)
        .commit();

5、监听:

materialCalendarView.setOnDateChangedListener(new OnDateSelectedListener() {
    @Override
    public void onDateSelected(@NonNull MaterialCalendarView widget, @NonNull CalendarDay date, boolean selected) {
        //格式化日期
        SimpleDateFormat yyMMdd = new SimpleDateFormat("yyyyMMdd");
        String dateS = yyMMdd.format(date.getDate()).toString();
        Log.d(TAG, "onDateSelected: "+dateS);
        Intent intent = new Intent();
        intent.setAction("com.geek.calender");
        intent.putExtra("date",dateS);
        //本地广播发送
        LocalBroadcastManager.getInstance(CalenderActivity.this).sendBroadcast(intent);
        finish();
    }
});

6、传值之后处理数据

//初始化广播,注册广播
    private void initBroadCaseManager() {
        IntentFilter intentFilter = new IntentFilter("com.geek.calender");
        LocalBroadcastManager.getInstance(getActivity()).registerReceiver(broadcastReceiver,intentFilter);
    }
@Override
    public void onDestroyView() {
        super.onDestroyView();
        //注销广播
        unRegisterBroadcast();
    }

    private void unRegisterBroadcast() {
        if(broadcastReceiver != null){
            LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(broadcastReceiver);
        }
    }
//广播接收器
    BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String date = intent.getStringExtra("date");
            //判断是否是当天
            String yyyymmdd = DateUtil.getYYYYMMDD();
            if(date.equals(yyyymmdd)){
                isBefore = false;
                adapter.setBefore(isBefore,"今日新闻");
                presenter.getPaperData();
            }else{
                isBefore = true;
                adapter.setBefore(isBefore,date);
                presenter.getBeforePaperData(date);
            }
            Log.d(TAG, "日期为:"+date+"----"+isBefore);

        }
    };
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容