發表文章
目前顯示的是 3月, 2018的文章
實作Android導覽教學(fragment)
- 取得連結
- 以電子郵件傳送
- 其他應用程式
這次的案子是要把原有的app增加一個新手導覽教學的功能 但是不是整頁換頁的方式(像是用setContent把整頁內容改變),而是以原本存在的頁面上面蓋上一層透明的頁面,然後導覽使用者點下按鈕之後才會繼續下一步。 全部的導覽結束之後,這個透明的頁面會消失,然後恢復原本的使用介面。 大概長得像是這樣: 需要用到的主要概念有三個: 1. 使用不揮發變數(SharedPreference)來設立一個初始值為false的flag,讓教學導覽結束之後把flag調回true,以免使用者下次打開之後又開始教學導覽 2. 調整style.xml檔案,用AndroidManifest.xml指定activity後用setContent鋪上透明主題頁面 3. fragment的增加,覆蓋,以及在最後結束時關閉透明頁面 (如果你是想要跟上圖一樣只有這樣一個介面,按下螢幕之後就結束的話,可能不需要fragment) --- 1. 不揮發變數 --- 放一個flag的變數進去SharedPreference SharedPreferences sharedPreferences = getSharedPreferences("flag" , MODE_PRIVATE); //取得SharedPreferences , 丟入的參數為("名稱" , 存取權限) 關於存取權限: MODE_PRIVATE 只允許本應用程式內存取。 MODE_MULTI_PROCESS 允許多個行程同時存取,在Android 2.3(含)以前的版本都是預設開啟,但2.3之後要指定這個參數才允許多行程同時存取。 MODE_WORLD_READABLE 讓手機中的所有app都能讀取,因為風險性太高,從API 17版開始就不建議使用了。 如何改變該值: sharedPreferences.edit().putboolean("flag" , false).apply(); //存入資料,丟入的參數為(key , value) 如何取出該值: sharedPreferences.getboolean("flag" , false); //
利用Accuweather實作天氣APP
- 取得連結
- 以電子郵件傳送
- 其他應用程式
雖說這只是公司要求新人自己練習用的,但是自己從來沒寫過app(除非要說hello world也算的話),因此想自己嘗試看看做一個簡單的天氣app。 首先要先到 https://developer.accuweather.com/ 先註冊帳號之後取得專案apikey(沒有這個就不能從這個網站取資料啦) 之後會在程式裡面用到。 取當下天氣資料的字串大概是長這樣子的(抓的是日文資料,要改的話在網址後面的language=ja可以修改): location_code和是地區碼(在 這裡 可以抓該網站專用的地區碼) http://dataservice.accuweather.com/currentconditions/v1/"+location_code+"?apikey=" + apikey +"&language=ja"; 大致上的概念就是,用這個網頁過去會直接收到一個json檔案, 然後把這個json檔案拆成很多部分放進app裡面。 按下手機上面的按鈕之後就會換頁,新的頁面會顯示天氣的資訊。 activity_main.xml (主頁面) <linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <linearlayout android:layout_height="93dp" android:layout_width="match_parent" android:orientation="horizontal"> <button android:id="@+id/button_sapporo" android:layout_height="w