Android 開發Part4

.R

Android project裡面的values, layout等xml定義資源, 都會自動編譯成.R . 但Eclipse的ADK並沒有很好的處理, 在你引用.R時, Eclipse的自動建議會幫你import錯誤的Android.R. 但其實應該是你目前專案的才對, 這時候要自己輸入import my.package.R. my.package填你建立專案時的包裝名稱

Clean Project

也是跟資源相關係問題, 有時候就算你xml定義好, 也正確的import, 還是會有找不到資源的問題, 這時候可以做兩件事. 先檢查你的xml是否有語法問題. 確認都正確後, 利用Eclipse選單的Project>Clean..去重新編譯資源檔

Empty Adapter

當你想清除原本已綁定(inflate)的view物件, 例如spinner, 網路上找到的view.item.clear()跟view.setAdapter(null)都是錯誤的, 我不知道為甚麼他們要這樣寫, android從2.2.3到4.3.1的API都沒有這兩個定義. 後來我的做法是產生一個沒有內容的adapter, 例如沒有字串的字串陣列, 然後setAdapter(empty)

Localization

若你想支援Localization, 最好是從第一行程式開始就把所有字串都利用values裡的strings.xml參考, 不然之後會找字串找得很痛苦. 包括menu裡的字串也要從strings.xml讀取

GetView(row)

Adapter裡的一個方法, google提供的範例沒有說明原來方法的第二個參數其實是view object的cache (convertView), 檢查這個若不是null, 就直接回傳這個, 可以減少重覆inflate, 有較好的performance

Code Version

每一次想要上傳至Google Play都要改, 簡單的處理方法就是+1, 不然會上傳失敗

Export key

上傳Google Play一定要用的key, 產生時記得年期選100年或以上, 不然會上傳失敗. 雖然我不知道100年跟永久有甚麼分別, Google也不見得可以維持100年…

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s