Android 4.0+ 程序化開啟 GPS:權限變更與 Intent 方案適配
背景 Android 4.0 (API 14) 起,安全策略收緊,**第三方 App 無法直接程序化開啟/關閉 GPS**,需用戶手動在系統設置中操作。舊代碼
Android 自定義 ListView 項目點擊無響應:CheckBox 搶奪焦點導致 onItemClick 失效
現象 自定義列表項包含 CheckBox,設置 OnItemClickListener 但點擊項目無反應,onListItemClick / onItemCli
Android ListView Item 內 Button 狀態滾動丟失:數據源同步與 ViewHolder 模式徹底解決
現象 ListView 項目含 Button A/B,點擊 Button A 隱藏它。滾動後,其他項目的 Button A 也莫名隱藏,或隱藏狀態錯亂。 根本
iOS GCDAsyncUdpSocket 發送 UDP 數據包:客戶端完整實現代碼
依賴集成 CocoaPods: pod CocoaAsyncSocket Swift Package Manager: https://github.com/r
Android AlertDialog 嵌套彈窗:正確獲取 Context 避免構造函數未定義錯誤
錯誤場景 在 DialogInterface.OnClickListener 匿名類中創建新 AlertDialog,傳入 this 導致編譯錯誤:The co
Android Button 狀態圖片 Selector 封裝:自定義屬性實現複用避免重複 XML
痛點 每個 Button 都需寫 selector XML (btn_background.xml),項目中按鈕眾多時極其繁瑣,維護成本高。 解決方案:自定義
iOS CLGeocoder 郵編/城市轉經緯度:地理編碼完整實現與錯誤處理
核心 API:CLGeocoder CLGeocoder 將地址字串 (郵編、城市、詳細地址) 轉換為 CLPlacemark (含經緯度、行政區劃等)。 基
Android MultipartEntity 圖片上傳失敗排查:服務端權限與代碼細節檢查
現象 使用 MultipartEntity 上傳圖片,無報錯但服務端未收到文件。PHP 端 move_uploaded_file 未生效。 排查步驟與解決方案
Android LinearLayout visibility="invisible" 仍佔用空間:改用 gone 徹底隱藏
現象 設置 android:visibility=invisible 後,LinearLayout 不可見但仍佔據佈局空間,導致其他視圖位置偏移。 根本原因:
iOS CALayer 填充顏色修改:backgroundColor 與 drawInContext 兩種場景全覆蓋
場景一:整層純色填充 — 直接設置 backgroundColor // 簡單、高效、GPU 直接渲染 layer.backgroundColor = UIC
Android Dialog 返回鍵處理:setOnCancelListener 實現關閉對話框並 Finish Activity
需求 用戶按返回鍵關閉 Dialog 時,同時調用 Activity.finish() 關閉頁面。 標準方案:setOnCancelListener {
Android TextView 獲取實際顯示行數:post 延遲執行與 getLineCount 正確用法
問題 在 onCreate 中直接調用 textView.getLineCount() 返回 0,因佈局尚未完成測量。 正確方案:View.post(Runn
Android HttpURLConnection 登錄後 WebView Cookie 同步方案
場景 App 用 HttpURLConnection POST 登錄,獲取 Cookie,需注入嵌入 WebView 實現免登訪問受保護頁面。 核心解決方案:
Android getReadableDatabase 主線程調用風險:SQLiteException database locked 根因與解決
現象 Android 2.2 設備偶發 SQLiteException: database locked,API 文檔警告:getReadableDatabas
Android ListView 傳遞數據到 onItemClick:CursorAdapter 最佳實踐與現代遷移
問題場景 SimpleCursorAdapter 綁定 Cursor,點擊項目需獲取 gotoURL 字段傳遞給下一個 Activity。 錯誤做法:直接在
Android 字串轉整數陷阱:getString(R.string.xxx) 誤用導致 ResourceType 警告
錯誤現象 String size = parser.getValue(e, parser.KEY_FileSizeInByte); // 97035 try
iOS NSArray 創建差異:alloc/init 與 arrayWithObjects 記憶體管理詳解
兩種寫法對比 // 方式一:alloc/init (手動釋放時代 / 非 ARC) NSArray *arr1 = [[NSArray alloc] initW
Android Fragment 中實現接口回調:正確實例化 OnConnectingToInternet 避免空指針
問題場景 FragmentActivity 定義接口 OnConnectingToInternet,Fragment 需調用該接口顯示/隱藏 ProgressB