原创 Windows 配置路由,使有內網網卡和外網網卡的電腦同時訪問內網和外網

​ 聲明:文中使用截圖大都從網絡中獲取,但是操作步驟是自己的實踐 用管理員打開cmd,查找路由表 route print,如下圖 上面的Realtek PCIe CBE Family Controller就是我們網卡對應

原创 數據庫常用Sql語句

SqlServer多表連接查詢 SqlServer多表連接更新 MySQL 字段 LIKE 多個值 SQL server 數據庫 修改字段類型 數據庫時間操作 刪除–delete from 數據庫名.dbo.表名 where 條

原创 Android中webview的使用,重點處理圖片和附件下載

webview基本使用: //加載網頁鏈接 webView.loadUrl("http://keithxiaoy.com"); //加載本地assets目錄下的網頁 webView.loadUrl("file:///andro

原创 Kettle數據庫遷移實戰(二)--批量導入

系列文章: Kettle數據庫遷移實戰(一) Kettle數據庫遷移實戰(三)–表輸入使用上一個步驟的變量作爲參數 Kettle數據庫遷移實戰(四)–使用SQL腳本 Kettle實戰(五)–使用java代碼腳本 工作中需要對網站

原创 Kettle數據庫遷移實戰(一)

數據庫遷移不是一件簡單的事情,特別是需要從Oracle遷移到MySQL或者sqlserver遷移到MySQL等等,而數據處理中還會遇到很多問題,譬如表結構不一樣,字段需要特殊處理等,而Kettle使用起來則非常方便,不需要連接太多

原创 WebStorm顯示toolbar和自定義toolbar

功能很小,不喜勿噴。在編碼中有一些經常使用的功能,比如返回上一個光標的位置,使用快捷鍵也可以,不過在工具欄點擊也很方便,但是在WebStorm默認是不顯示toolbar的。百度還真沒有解決,在這裏記錄一下 菜單欄 view->t

原创 android通訊錄(任意層級樹形列表和字母列表切換)

參考文章 Android使用RecycleView實現魅族手機通訊錄界面 Android微信通訊錄滑動快速定位實現 更快實現Android多級樹形選擇列表 其中recyclerview部分參考第一篇文章,側邊欄參考第二篇文章

原创 Android自定義驗證碼/密碼輸入框(輸入框樣式完全由自定義背景決定),高度複用性

工作中經常會用到驗證碼輸入框,但是網上好多都是用4個TextView和一個隱藏的EditText,這樣複用性不是很好。萬幸找到了一個自定義View的案例,可以說是用很方便,也有很好的複用性,也是一個學習自定義View的不錯的例子,

原创 android錨點優化

首先看效果 先說關鍵點 tabLayout選中的時候滑動到指定錨點 由scrollview主動引起的滑動,滑動的指定區域,選中那個指定tabLayout 由於上述兩個步驟會引起相互調用,所以要判斷scrollview滑動是主動

原创 AndroidStudio修改工程名稱和包名稱

修改工程名稱 關閉AndroidStudio,複製一份新的項目,修改項目文件夾名稱 刪除.idea文件夾和.iml文件夾(有可能是隱藏的,需要設置顯示) 最後重新打開項目 修改包名稱 打開清單文件Andr

原创 android吸頂佈局(動態添加和移除view)

參考文章五種方式實現Android吸頂效果 我的效果 吸頂關鍵點: 根據滑動距離動態改變tabLayout的父容器 根據滑動距離動態改變懸浮tab的背景色 錨點切換關鍵點參考另一篇文章android錨點優化 關鍵點代碼: i

原创 反射基礎,沒有理論,只有使用

public class DemoClass { private String nickName; public int num = 3; public int add(int a,int b){

原创 Rxjava使用,沒有理論只有實戰

線程切換->subscribeOn和observeOn Observable.just(1,2,3,4) .doOnNext { println("parade訂閱observeOn${Thread.c

原创 發佈開源項目到Jcenter從0到1,自身經歷

把自己的依賴放到JCenter 首先需要註冊Bintray ,因爲Bintray 是 JCenter 庫的運營商。 首先你要有一個項目,準確的說應該有一個Android moudle並把項目上傳到GitHub 註冊 :網址

原创 Kotlin 協程由淺入深

任何UI框架都有自己的主線程來進行渲染界面和觀察觸摸事件,這個線程絕對是你應該關注的最重要的線程,用戶永遠不知道你是否使用了AsyncTask或者Coroutine來編寫你的代碼,但是用戶卻可以感受到你的應用的響應速度,因此要如