apk下載地址
vczK0qGiyKvPws7ntrzDu7/OtcS9zMrSo6y4w7bgusOho9PaysejrNOm08O1rsn6wcuho2ZlYXR1cmVz09CjujwvcD4KPHA+ICAgICAxo6m4+b7dvczO8bSm0MXPoqOszOG5qbGxvqnB1tK1tPPRp9fu0MK1xL/Vv87K0tDFz6KhozwvcD4KPHA+ICAgICAyo6nM4bmpv9W/zsrSwdCx7aOst9bIq8nPzufDu7/Oo6zIq8/CzufDu7/Oo6zN7cnPw7u/zr/OytLB0LHtoaM8L3A+CjxwPiAgICAgM6OpuPm+3bWxx7DKsbzko6zWx8Tczca89r/OytKjrLHIyOfPws7nMbXjo6zP1Mq+tcTIq8/CzufDu7/OtcS/zsrSoaM8L3A+CjxwPiAgICAgNKOpwqWy47XNtcS/zsrSxcXU2sHQse3HsMPmoaM8L3A+CjxwPjxicj4KPC9wPgo8cD688sLU19y94dK7z8K/qrei1eK49tOm08PRp7W9tcTSu9Cp1qrKtqGj19y94bbU19S8utfu09C6w7Smo6zI57n7xNyw79b6sfDIy8THuPy6w6GjPC9wPgo8cD7K18/Io6y9zM7xtKbN+NW+zOG5qcHLv9W/zsrS0MXPoqOsyOfNvKGjPC9wPgo8cD48aW1nIHNyYz0=”https://www.aiwalls.com/uploadfile/Collfiles/20140104/2014010408592831.jpg” alt=”\”>
折騰瞭兩天後,就是上面那幅圖的樣子。
一開始抓取用的是字符串的基本處理方法,先把所有數字得到,然後因為課室號都是三位數字的,然後舍去前面一些,就搞到瞭。
怎樣得到從字符串得到所有的數字呢?
像這樣。
輸入:782sjfk2382kjfsdlkfj382
輸出:[782,2382,382]
“[^0-9]+”是正則表達式,[^0-9],表示匹配一個除瞭0到9的字符,+表示匹配前面的表達式一次或多次。看圖就一下子明白瞭。
所以之後的split,分隔字符串,就得到數字的字符串數組。尤其值得一提的是這個“+”,因為網頁裡,非數字字符特別多。
若用[^0-9],
所以,上面的判斷的語句沒什麼必要,即if判斷可省略:
這裡的print也有一點神奇:
…表示不定長參數。作為從Lisp剛轉過來學Android的人,對這個就感覺特別親切。java語言的一大制訂者Guy Steele精通很多門語言,也是Common Lisp的語言制訂者。Lisp中:
隻要用一個&rest就行瞭。還有&optional參數,讓某個參數是可選的。&key讓某個參數成為關鍵字。&rest經常和Macro結合來用。
後來學聰明瞭,用起瞭jsoup,加入Android的時候,要這樣:
放到libs文件夾下,再刷新一下。下面方式很出錯,
說是什麼api更新後這樣做不會自動把jsoup包囊括進來。
看這個html:
想獲得所有的文本,可以用:
一些代碼片段:
其中,src.attr(“abs:src”),表明獲得src的絕對地址。而上面src=”y18.gif”,是相對地址。
上面片段改編自這裡。
自定義標題及標題欄視圖:
判斷是否聯網:
日期加法函數:
計算相隔的天數:
得到網頁內容:
使用bundle在Activity中傳遞數據:
使用spinner:
SharedPreferences:
在另外一個Activiy中:
更新ListView:
總的來說,判斷內容更新+jsoup網頁抓取+Spinner+ListView。
Github地址