原创 Android將Excel表數據導入SQLite數據庫

前兩天接了個私活,需求方給了一個Excel表格,需要使用到裏面的7000+條數據進行查詢,最開始以爲7000條一條條加入數據庫也還好,以下是其中一部分數據: 但當我添加了20多條的時候突然發現這樣的方式太蠢了,所以想着既然文件可

原创 我在Adapter中使用holder時踩到的坑

我在Adapter中使用holder時踩到的坑 說到這個坑,一切都源於萬惡的用戶需求,下面且聽我娓娓道來。 最開始我們界面大概是這個樣子滴~(以下圖乃本人簡畫所得,真實設計比這個好很多滴) 要完成這個界面是不是so easy!

原创 Android使用Serializable實現序列化傳輸對象

最近在做一個基於Socket通信項目,在實現客戶端與服務器進行對象傳輸時使用到了Serializable接口對傳輸對象進行序列化,下面將和大家分享一下我的開發實例,歡迎各位交流探討,不足之處希望各位多多指出。 首先談談什麼是序列化,序列

原创 Android使用SpannableString進行字符串的分段處理

Android使用SpannableString進行字符串的分段處理 最近進行Android項目開發的時候遇到了一個情景: 這是一個單選按鈕後面跟一句選項描述。大家能看到,這段文字前面部分是黑色文字,但後面卻跟着藍色高亮

原创 Android 使用類加載器原理實現熱修復

本篇熱修復的原理是通過類加載器加載修復好的class文件來實現。 源碼分析 項目在編譯的時候會將java文件翻譯成class文件,而class類在程序安裝的時候會打包成dex文件,Android 通過dalvik虛擬機運行dex文件,從而

原创 AlertDialog.Builder+SpannableStringBuilder自定義單選框

在項目開發的時候,產品汪希望我們做出這種樣式的dialog,要做出單選Dialog很簡單,網上例子一搜一大把。而我們常用的AlertDialog.Builder也有實現這樣的方法: setSingleChoiceItems(ListA

原创 我踩到的關於Fragment 狀態的保存和恢復的坑

在進行項目開發的時候遇到了一個奇怪的坑,在Activity和Fragment傳遞對象的時候已經對對象進行了判空處理,但是在Fabric統計上還是出現了“NullPointException”,我們在代碼中的具體實現是在Activity裏將

原创 volley+Express實現簡單的客戶端服務器通信

最近在補一些網絡的東西,所以閒來無聊,就用Android的Volley和Node.js的Express簡單的實現客戶端和服務器的通信。 由於樓主時間比較緊,在這裏就簡單的說一下實現步驟,等有時間樓主再補充詳細的~ 首先我們來看看如何用

原创 Android使用BottomSheetBehavior 和 BottomSheetDialog實現底部彈窗

BottomSheetBehavior 和 BottomSheetDialog都是design包裏的。這兩種配合使用可以實現底部彈窗效果。 BottomSheetDialog使用方法和正常的彈框是一樣的,他的內部是通過BottomShee

原创 EventBus的初步接觸

在項目開發過程中,我們對onActivityForResult一定不陌生,通常我們希望從當前Activity/Fragment跳到另一個Activity/Fragment去進行一些事件的處理,處理完後將結果發送給第一個Activity/F

原创 兩年Android開發教會我的那些事(一)

我還記得在2014年的時候,我決定開始進行Android開發,這是我一生中做的最正確的決定之一。到現在兩年半的時間裏,我有機會學習或改掉很多有關Android方面的事情。 當我最開始學習的時候,我沒有一個導師或者一個人可以指導我去做正確事

原创 SharedPreferences 的commit和apply分析

之前在做項目開發的時候曾經遇到過一個坑,我們的業務需求是點擊相應的國家圖標進行國家切換包含匯率、url等的切換,所以當時我們考慮的是切換的時候用SharedPreferences來對存儲當前的國家代碼,所以我們有了以下的代碼: Share

原创 Android 使用bintray將本地庫上傳到JCenter做maven依賴庫

建項目及製作library包部分 1.在github上新建一個倉庫 2.將倉庫clone下來 3.新建項目: 項目文件夾選擇我們克隆下來的文件夾 4.File->New->New Module選擇library 成功後的Proj

原创 探索Android 7.1 app快捷方式(App Shortcuts)

Google已經發布了Android Nougat 7.1(API 25) 版本,但是這個不是一個小的發佈版,事實上它綁定了一些有趣的功能在底層。其中一個附加功能就是App快捷方式。 App快捷方式對於暴露你的app的actions然後

原创 如何“優雅”地給你的類命名

本文是翻譯NOVODA上的一篇博客“This one simple change for better class naming will blow your mind”樓主讀了該大神的博客後深受啓發,故翻譯了此文~樓主捉急的英文水平還