Android開發手記(開發自習助手)

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地址

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *