国产精品国产精品国产专区_国产91丝袜在线播放_男女精品_日韩不卡1卡2卡三卡2021免费_亚洲人网_日本成人v片在线_日本高清www_国产三级日韩_国产熟妇高潮呻吟喷水_国产精品夜间视频香蕉_久久综合久久久久_成人综合网亚洲伊人_国产suv精品一区二区五_不卡无码人妻一区三区_国产aⅴ爽av久久久久成人_亚洲精品99
              學術(shù)指導服務,正當時......期刊天空網(wǎng)是可靠的職稱論文與著作出書咨詢平臺!

              Android系統(tǒng)基礎(chǔ)上的多功能日程表設(shè)計及實現(xiàn)

              發(fā)布時間:所屬分類:科技論文瀏覽:1

              摘 要: Android系統(tǒng)有著良好的用戶體驗,低廉的成本及高開發(fā)性得到了廣泛的應用。而日歷行程應用作為智能終端的出廠必備控件,更是Android系統(tǒng)中不可或缺的一部分,該系統(tǒng)是一個基于Android手機的日程管理系統(tǒng),具有基本的活動日程安排功能,在日歷瀏覽中可突出顯示

                Android系統(tǒng)有著良好的用戶體驗,低廉的成本及高開發(fā)性得到了廣泛的應用。而日歷行程應用作為智能終端的出廠必備控件,更是Android系統(tǒng)中不可或缺的一部分,該系統(tǒng)是一個基于Android手機的日程管理系統(tǒng),具有基本的活動日程安排功能,在日歷瀏覽中可突出顯示安排的日期。為了加強提醒效果,該系統(tǒng)設(shè)計了只有完成指定小游戲后才能關(guān)閉提醒功能。

                關(guān)鍵詞:課程表,日程表,鬧鐘提醒

              系統(tǒng)設(shè)計

                1 背景

                隨著移動互聯(lián)網(wǎng)的高速發(fā)展,人們已經(jīng)無法離開移動終端,智能手機也已經(jīng)越來越普及,對人們的生活產(chǎn)生了巨大的影響,人們可以隨時隨地使用手機,隨時隨地來查看信息,隨時隨地用來上網(wǎng)等,當然也急需青春地了解到自己每天所需要完成的事情,或是需要記錄一些容易忘記的重要事件,并能有一個功能完善的軟件來幫助人們完成這些事情。在這樣的大背景下,基于安卓平臺的日歷行程系統(tǒng)軟件也逐漸進入安卓開發(fā)者的視野中[1]。

                2 多功能日程表應用設(shè)計

                2.1 多功能日程表總體設(shè)計

                設(shè)計并實現(xiàn)一款基于Android平臺的日歷行程系統(tǒng),具備基本的日期顯示功能;能夠設(shè)置課程安排等;并提供發(fā)布日記功能,鬧鐘提醒等功能。如圖1。

                2.2 多功能日程表功能介紹

                該應用中主頁面導航欄包含日記、課程表、代辦事項、日歷等四部分,菜單欄目區(qū)域有設(shè)置,邀請好友、鬧鐘、登陸退出功能等。如圖2。

                用戶點擊軟件圖標,打開軟件,注冊登錄后:

                1)可以看見當前日記

                2)用戶可以單擊手機上的菜單按鈕,選擇不同的功能,包括設(shè)置,邀請好友,鬧鐘,退出等功能。

                4) 用戶可以點擊下方導航欄按鈕進行選擇功能,包括日記,課程表,代辦,日歷等。

                4)用戶可以在日記選擇按鈕中發(fā)布刪除日記,在課程表中添加設(shè)置課程安排,在代辦中查看設(shè)置自己的行程和鬧鐘,在日歷中查看當前日期。

                5)用戶添加了代辦事項,啟動的提醒服務后,只有完成指定小游戲才能將其關(guān)閉。

                3 多功能日程表應用實現(xiàn)

                該系統(tǒng)采用java編寫,Android studio開發(fā)。使用MVC模式架構(gòu),數(shù)據(jù)庫為SQLite[2]

                使用了Material Design、Fragment+ViewPager+RadioButton、CardView、CalendarView等框架或部分自定義view開發(fā)。

                3.1 使用Fragment+ViewPager + RadioButton 來構(gòu)造導航欄

                ViewePager是一個頁面切換組件,我們可以在里面添加多個View。可以通過觸摸屏幕左右滑動的方式來切換不同的View,當然也可以通過RadioButton的狀態(tài)標記來跳轉(zhuǎn)至不同的View。另外,ViewePager是有著自己特定的Adapter--FragmentPagerAdapter,我們只需重寫FragmentPagerAdapter里的方法就能進行使用了[3]。

                3.2 鬧鐘提醒功能的創(chuàng)建

                我們需要調(diào)用AlarmManager.set()來把鬧鐘時間記錄到系統(tǒng)里,這樣,當?shù)竭_設(shè)定的鬧鐘時間時,系統(tǒng)會給程序發(fā)送一段廣播,所以,我們還需要通過復寫onReceive()創(chuàng)建一個廣播接收器。最后,別忘了在Manifest把剛寫好的廣播接收器給注冊了[4]。

                3.3 使用Calendarview構(gòu)建日歷

                日歷視圖(Calendarview)可用于顯示和選擇日期,用戶既可選擇一個日期,也可通過觸摸來滾動日歷。如果希望該控件的日期改變,可調(diào)用CalendarView的setOnDateChangeListener()方法來為此組件的點擊事件添加監(jiān)聽器[5]

                public class CalendarFragments extends Fragment implements OnMonthChangedListener,OnDateSelectedListener{

                private View layout;

                private LayoutInflater mInflater;

                private MaterialCalendarView mCalendarView;

                private static final DateFormat FORMATTER = SimpleDateFormat.getDateInstance();

                private TextView mTv2;

                private Alarm alarm;

                @Override

                public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

                initUI(inflater, container);

                return layout;}

                private void initUI(LayoutInflater inflater, ViewGroup container) {

                if(layout==null){

                mInflater=inflater;

                layout = inflater.inflate(R.layout.fragments_calendar, container, false);

                findview();

                initData(); } }

                @Override

                public void onStart() {

                // TODO Auto-generated method stub

                super.onStart();

                Calendar instance2 = Calendar.getInstance();

                CalendarDay date = CalendarDay.from(instance2.get(Calendar.YEAR), instance2.get(Calendar.MONTH),instance2.get(Calendar.DAY_OF_MONTH));

                mCalendarView.setSelectedDate(date);

                alarm = getNext();

                if(null!=alarm){

                Calendar c = Calendar.getInstance();

                if(c.get(Calendar.YEAR)==alarm.getAlarmTime().get(Calendar.YEAR)&&

                c.get(Calendar.MONTH)==alarm.getAlarmTime().get(Calendar.MONTH)&&

                c.get(Calendar.DAY_OF_MONTH)==alarm.getAlarmTime().get(Calendar.DAY_OF_MONTH)){

                mTv2.setText(alarm.getAlarmName());

                }else{mTv2.setText("今天活動已超時或者無任何活動"); }

                }else{mTv2.setText("今天活動已超時或者無任何活動"); } }

                private void initData() {

                mCalendarView.setSelectionColor(getActivity().getResources().getColor(R.color.main_background));

                Calendar instance2 = Calendar.getInstance();

                CalendarDay date = CalendarDay.from(instance2.get(Calendar.YEAR), instance2.get(Calendar.MONTH),instance2.get(Calendar.DAY_OF_MONTH));

                mCalendarView.setSelectedDate(date);

                mCalendarView.state().edit().setCalendarDisplayMode(CalendarMode.MONTHS).commit();

                mCalendarView.setTopbarVisible(true);

                mCalendarView.setOnDateChangedListener(this);

                mCalendarView.setOnMonthChangedListener(this);

                alarm = getNext();

                if(null!=alarm){

                Calendar c = Calendar.getInstance();

                if(c.get(Calendar.YEAR)==alarm.getAlarmTime().get(Calendar.YEAR)&&

                c.get(Calendar.MONTH)==alarm.getAlarmTime().get(Calendar.MONTH)&&

                c.get(Calendar.DAY_OF_MONTH)==alarm.getAlarmTime().get(Calendar.DAY_OF_MONTH)){

                mTv2.setText(alarm.getAlarmName());

                }else{mTv2.setText("今天活動已超時或者無任何活動"); }

                }else{mTv2.setText("今天活動已超時或者無任何活動"); } }

                private void findview() {

                mCalendarView = (MaterialCalendarView) layout.findViewById(R.id.calendarView);

                mTv2 = (TextView) layout.findViewById(R.id.textView2);

                }

                3.4 繪制一個課程表

                先使用多個LinearLayout布局嵌套來會出課程表表格,再通過使用Fragment來動態(tài)加對應的內(nèi)容并設(shè)置對應的點擊事件即可

                //初始化課程表

                private void initWeekCourseView() {

                for (int i = 0; i < mWeekViews.size(); i++) {

                initWeekPanel(mWeekViews.get(i), getCourseData()[i]); } }

                //添加課程表

                private void addWeekCourseView() {

                for (int i = 0; i < mWeekViews.size(); i++) {

                initWeekPanel(mWeekViews.get(i), getSingleData()[i]); } }

                //頂部周一到周日的布局

                private void initWeekNameView() {

                for (int i = 0; i < mWeekViews.size() + 1; i++) {

                TextView tvWeekName = new TextView(getActivity());

                LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);

                ll.gravity = Gravity.CENTER | Gravity.CENTER_HORIZONTAL;

                if (i != 0) {

                ll.weight = 1;

                tvWeekName.setText("周" + intToZH(i));

                if (i == getWeekDay()) {

                tvWeekName.setTextColor(Color.parseColor("#FF0000"));

                } else {

                tvWeekName.setTextColor(Color.parseColor("#4A4A4A")); }

                } else {

                ll.weight = 0.8f;

                tvWeekName.setText(getMonth() + "月"); }

                tvWeekName.setGravity(Gravity.CENTER_HORIZONTAL);

                tvWeekName.setLayoutParams(lp);

                weekNames.addView(tvWeekName); } }

                // 左邊節(jié)次布局,設(shè)定每天最多12節(jié)課

                private void initSectionView() {

                for (int i = 1; i <= maxSection; i++) {

                TextView tvSection = new TextView(getActivity());

                LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, getResources().getDimensionPixelSize(R.dimen.sectionHeight));

                ll.gravity = Gravity.CENTER;

                tvSection.setGravity(Gravity.CENTER);

                tvSection.setText(String.valueOf(i));

                tvSection.setLayoutParams(lp);

                sections.addView(tvSection); } }

                //當前星期

                public int getWeekDay() {

                int w = Calendar.getInstance().get(Calendar.DAY_OF_WEEK) - 1;

                if (w <= 0) {w = 7;} return w;}

                //當前月份

                public int getMonth() {

                int w = Calendar.getInstance().get(Calendar.MONTH) + 1;

                return w; }

                // 每次刷新前清除每個LinearLayout上的課程view

                private void clearChildView() {

                for (int i = 0; i < mWeekViews.size(); i++) {

                if (mWeekViews.get(i) != null)

                if (mWeekViews.get(i).getChildCount() > 0)

                mWeekViews.get(i).removeAllViews(); } }

                4 結(jié)束語

                該次開發(fā)的日歷行程系統(tǒng)可以在安卓平臺上平穩(wěn)運行,實現(xiàn)了原來計劃的多有功能,可以查詢?nèi)掌谝约捌渌δ堋6疫有日期管理功能。對于行程鬧鐘的管理,系統(tǒng)也有相應的應對功能;對于日期的管理,可以設(shè)置相應的跳轉(zhuǎn)功能,也可以指定日期提醒,設(shè)備備忘錄等。該系統(tǒng)人機界面良好,操控性能好。

                參考文獻:

                [1] 郭霖. 第一行代碼Android[M].2版. 北京: 人民郵電出版社, 2014.

                相關(guān)范文閱讀:單片機在自動控制系統(tǒng)設(shè)計中的應用

                在自動控制系統(tǒng)設(shè)計中,單片機占據(jù)核心地位,由于單片機具備可編程的特點,可以簡單、快速的實現(xiàn)自動化控制。下面文章就是以電機設(shè)備為研究背景,分析單片機在自動控制系統(tǒng)設(shè)計中的應用。

                關(guān)鍵詞:單片機,自動控制系統(tǒng),設(shè)計

                

              熱門核心期刊

              SCI|SSCI指導

              EI|SCOPUS指導

              翻譯潤色解答

              論文發(fā)表指導

              學術(shù)成果常識

              最新分區(qū)查詢?nèi)肟?/a>
              主站蜘蛛池模板: 国内精品久久久久影院日本| 日本精品免费在线观看| 在线观看av网站永久| 国产欧美性成人精品午夜| 日韩视频在线观看免费视频| 人人妻人人狠人人爽| 无码乱人伦一区二区亚洲一| 日韩精品免费一区| 三上悠亚毛片| 又黄又爽又色视频| 亚洲成人资源在线观看| 久久综合久中文字幕青草| 国产亚洲欧美日韩在线一区二区三区 | 亚洲色自偷自拍另类小说| 5a级毛片| 亚洲欧美va天堂人熟伦| 久久精品国产www456c0m| 美女视频黄是免费| 亚洲毛茸少妇高潮呻吟| 国产久免费热视频在线观看| 一本色综合久久| 日韩午夜免费| 红桃视频 国产| 国精产品一区一区三区有限公司杨| 我爱av网站| 久久这里有精品国产电影网 | 夜夜摸,狠狠添,日日添,高潮出水| 国产精品白丝av网站在线观看 | 美女18禁一区二区三区视频| 欧美男女爱爱视频| 亚洲欧美一区二区爽爽爽| 久久国产精品成人影院| 蜜臀av性久久久久蜜臀aⅴ流畅 | 精品日韩一区二区三区免费视频| 第九色激情| 国产超碰人人做人人爱一二区视品| 国产黄a三级三级三级70年后 | 亚洲中文字幕成人综合网| 亚洲精品乱码久久久久久久久久久久 | 亚洲gv白嫩小受在线观看| 国产精品69久久久久999小说|