Android開發中,有哪些讓你覺得相見恨晚的方法、類或介面
阿新 • • 發佈:2018-12-24
1、Throwable介面中的getStackTrace()方法(或者Thread類的getStackTrace()方法),根據這個方法可以得到函式的逐層呼叫地址,其返回值為StackTraceElement[];
2、StackTraceElement類,其中四個方法getClassName(),getFileName(),getLineNumber(),getMethodName()在除錯程式列印Log時非常有用;
3、UncaughtExceptionHandler介面,再好的程式碼異常難免,利用此介面可以對未捕獲的異常善後;
使用參見:Android使用UncaughtExceptionHandler捕獲全域性異常
4、Resources類中的getIdentifier(name, defType, defPackage)方法,根據資源名稱獲取其ID,做UI時經常用到;
5、View中的isShown()方法,以前都是用view.getVisibility() == View.VISIBLE來判斷的(╯□╰);(謝評論提醒,這裡面其實有一個坑:【android】view.isShown ()的用法)
6、Arrays類中的一系列關於陣列操作的工具方法:binarySearch(),asList(),equals(),sort(),toString(),copyOfRange()等;
Collections 類中的一系列關於集合操作的工具方法:sort(),reverse()等;
7、android.text.format.Formatter類中formatFileSize(Context, long)方法,用來格式化檔案Size(B → KB → MB → GB);
8、android.media.ThumbnailUtils類,用來獲取媒體(圖片、視訊)縮圖;
9、String類中的format(String, Object...)方法,用來格式化strings.xml中的字串(多謝 @droider An 提示:Context類中getString(int, Object... )方法用起來更加方便);
10、View類中的三個方法:callOnClick() ,performClick(),performLongClick(),用於觸發View的點選事件;
11、TextUtils類中的isEmpty(CharSequence)方法,判斷字串是否為null或"";
12、TextView類中的append(CharSequence)方法,新增文字。一些特殊文字直接用+連線會變成String;
13、View類中的getDrawingCache()等一系列方法,目前只知道可以用來截圖;
14、DecimalFormat類,用於字串格式化包括指定位數、百分數、科學計數法等;
15、System類中的arraycopy(src, srcPos, dest, destPos, length)方法,用來copy陣列;
16、Fragment類中的onHiddenChanged(boolean)方法,使用FragmentTransaction中的hide(),show()時貌似Fragment的其它生命週期方法都不會被呼叫,太坑爹!
17、Activity類中的onWindowFocusChanged(boolean),onNewIntent(intent)等回撥方法;
18、View類中的getLocationInWindow(int[])方法和getLocationOnScreen(int[])方法,獲取View在視窗/螢幕中的位置;
19、TextView類中的setTransformationMethod(TransformationMethod)方法,可用來實現“顯示密碼”功能;
20、TextWatcher介面,用來監聽文字輸入框內容的改變,可用來實現一系列具有特殊功能的文字輸入框;
21、View類中的setSelected(boolean)方法結合android:state_selected=""用來實現圖片選中效果;
22、Surface設定透明:SurfaceView.setZOrderOnTop(true);
SurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);但是會擋住其它控制元件;
23、ListView或GridView類中的setFastScrollEnabled(boolean)方法,用來設定快速滾動滑塊是否可見,當然前提是item夠多;
24、PageTransformer介面,用來自定義ViewPager頁面切換動畫,用setPageTransformer(boolean, PageTransformer)方法來進行設定;
25、apache提供的一系列jar包:commons-lang.jar,commons-collections.jar,commons-beanutils.jar等,裡面很多方法可能是你曾經用幾十幾百行程式碼實現過的,但是執行效率或許要差很多,比如:ArrayUtils,StringUtils……;
26、AndroidTestCase類,Android單元測試,在AndroidStudio中使用非常方便;
27、TextView類的setKeyListener(KeyListener)方法;
其中DigitsKeyListener類,使用getInstance(String accepted)方法即可指定EditText可輸入字符集;
28、ActivityLifecycleCallbacks介面,用於在Application類中監聽各Activity的狀態變化;
29、Context類中的createPackageContext(packageName, flags)方法,可用來獲取指定包名應用程式的Context物件。
2、StackTraceElement類,其中四個方法getClassName(),getFileName(),getLineNumber(),getMethodName()在除錯程式列印Log時非常有用;
3、UncaughtExceptionHandler介面,再好的程式碼異常難免,利用此介面可以對未捕獲的異常善後;
使用參見:Android使用UncaughtExceptionHandler捕獲全域性異常
4、Resources類中的getIdentifier(name, defType, defPackage)方法,根據資源名稱獲取其ID,做UI時經常用到;
5、View中的isShown()方法,以前都是用view.getVisibility() == View.VISIBLE來判斷的(╯□╰);(謝評論提醒,這裡面其實有一個坑:【android】view.isShown ()的用法)
6、Arrays類中的一系列關於陣列操作的工具方法:binarySearch(),asList(),equals(),sort(),toString(),copyOfRange()等;
Collections
7、android.text.format.Formatter類中formatFileSize(Context, long)方法,用來格式化檔案Size(B → KB → MB → GB);
8、android.media.ThumbnailUtils類,用來獲取媒體(圖片、視訊)縮圖;
9、String類中的format(String, Object...)方法,用來格式化strings.xml中的字串(多謝 @droider An 提示:Context類中getString(int, Object... )方法用起來更加方便);
10、View類中的三個方法:callOnClick()
11、TextUtils類中的isEmpty(CharSequence)方法,判斷字串是否為null或"";
12、TextView類中的append(CharSequence)方法,新增文字。一些特殊文字直接用+連線會變成String;
13、View類中的getDrawingCache()等一系列方法,目前只知道可以用來截圖;
14、DecimalFormat類,用於字串格式化包括指定位數、百分數、科學計數法等;
15、System類中的arraycopy(src, srcPos, dest, destPos, length)方法,用來copy陣列;
16、Fragment類中的onHiddenChanged(boolean)方法,使用FragmentTransaction中的hide(),show()時貌似Fragment的其它生命週期方法都不會被呼叫,太坑爹!
17、Activity類中的onWindowFocusChanged(boolean),onNewIntent(intent)等回撥方法;
18、View類中的getLocationInWindow(int[])方法和getLocationOnScreen(int[])方法,獲取View在視窗/螢幕中的位置;
19、TextView類中的setTransformationMethod(TransformationMethod)方法,可用來實現“顯示密碼”功能;
20、TextWatcher介面,用來監聽文字輸入框內容的改變,可用來實現一系列具有特殊功能的文字輸入框;
21、View類中的setSelected(boolean)方法結合android:state_selected=""用來實現圖片選中效果;
22、Surface設定透明:SurfaceView.setZOrderOnTop(true);
SurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);但是會擋住其它控制元件;
23、ListView或GridView類中的setFastScrollEnabled(boolean)方法,用來設定快速滾動滑塊是否可見,當然前提是item夠多;
24、PageTransformer介面,用來自定義ViewPager頁面切換動畫,用setPageTransformer(boolean, PageTransformer)方法來進行設定;
25、apache提供的一系列jar包:commons-lang.jar,commons-collections.jar,commons-beanutils.jar等,裡面很多方法可能是你曾經用幾十幾百行程式碼實現過的,但是執行效率或許要差很多,比如:ArrayUtils,StringUtils……;
26、AndroidTestCase類,Android單元測試,在AndroidStudio中使用非常方便;
27、TextView類的setKeyListener(KeyListener)方法;
其中DigitsKeyListener類,使用getInstance(String accepted)方法即可指定EditText可輸入字符集;
28、ActivityLifecycleCallbacks介面,用於在Application類中監聽各Activity的狀態變化;
29、Context類中的createPackageContext(packageName, flags)方法,可用來獲取指定包名應用程式的Context物件。