開發工具:Android studio 3.5.2
使用到的第三方庫:calendarview
使用到的輕量級存盤:sharedPreferences/sqlite
1.1初始頁面
layout:activity_main.xml
java:MainActivity
頁面效果:

<LinearLayout><!--設定orientation=vertical,垂直布局-->
<ImageView/>
<!--設定layout_gravity="center"裝中間的桃子;
onclick="period"添加了點擊事件,點擊后執行period方法,跳轉到主頁面-->
<TextView/><!--gravity="bottom"文字在桃子下面-->
</LinearLayout>
1.2 主頁面
布局結構
布局檔案:activity_period.xml
java檔案:PeriodActivity.java

1.2.1Toolbar導航欄
Toolbar導航欄=
<LinearLayout><!--垂直布局-->
<!--導航欄-->
<androidx.appcompat.widget.Toolbar>
<!--navigationIcon為左側回傳的圖示,點擊后回傳到初始頁面-->
<RelativeLayout>
<TextView/><!--“經期日歷”四個字顯示的地方-->
<ImageView/>
<!--右側小日歷圖示,id:weekcalendar,點擊后轉換成小日歷視圖, 底下的年月會隱藏,通過visibility=GONE屬性隱藏-->
<TextView><!--點擊日歷的某一天會顯示月和日-->
</RelativeLayout>
<!--使用relativeLayout的原因:設定布局更靈活-->
</androidx.appcompat.widget.Toolbar>
</LinearLayout>
1.點擊小日歷圖示轉換成小日歷視圖功能實作
(1)在PeriodActivity.java檔案中,用ImageView型別的 mTextMonthDay用findViewById找到圖示weekcalendar(line:120)
(2)添加onclick監聽器(line:208)
如果日歷不是展開的也就是說如果目前不是小日歷模式,那么則轉換成小日歷模式
mcalendarLayout.expand();//轉換成小日歷模式
mCalendarView.showYearSelectLayout(mYear);//獲取當前年份所有月并顯示
mTextMonthDay1.setText(String.valueOf(mYear));//顯示年份的地方
tvMonth.setVisibility(View.GONE);//顯示年月的地方隱藏

1.2.2 顯示當前年月的TextView
id:tv_month
在PeriodActivity中tvMonth系結控制元件tv_month,用對應方法獲取當前年當前月(line:272)
1.2.3 日歷顯示
布局結構:
<com.haibin.calendarview.CalendarLayout>
<!--第三方開源庫calendarview的布局-->
<com.haibin.calendarview.CalendarView/>
<!--顯示日歷的地方;id=calendarView
month_view=
"com.example.periodrecords2.CustomMultiMonthView"-->
<!--加載CustomMultiMonthView檔案,用該檔案實作UI的繪制-->
</com.haibin.calendarview.CalendarLayout>
在java檔案中,用一個Calendarview型別的mCalendarView系結日歷,因為用到了日歷多選,所以在mCalendarView需要系結第三方開源庫中的多選事件監聽器和視圖轉換監聽器以及選中事件監聽器/月份轉換(line:222),并給日歷限制了范圍為過去三年到當前下一個月,依然是calendarview庫里的方法(line:277)
=給日期分類
方法:setDatas(line:305)
將日期分為六類:安全期/易孕期/排卵期/預測經期/經期/今天
不同的類別在日歷上的繪制樣式不同
onCalendarMultiSelect方法(line:450)
選中某一天后會在日歷上繪制成紅色,用getYear()等方法獲取選中的日期存入sqlite中
sqlite
包含三個檔案:CRDB(實作資料庫的增、刪)
dateclass(定義了一個類,用來規定輸入的資料的格式)
Datedb(建資料庫)
*=繪制日歷=====*
CustomMultiMonthView.java檔案
在onDrawSelected方法中(line:43),多選的繪制樣式,如果中間斷開了,那么連介面會變成方的,如果沒斷則是圓的
1.2.4 添加注意事項

布局:

原始碼鏈接:https://github.com/egg-71/android-studio-App
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/400587.html
標籤:其他
