1. 程式人生 > >Android開發中,有哪些讓你覺得相見恨晚的方法、類或介面

Android開發中,有哪些讓你覺得相見恨晚的方法、類或介面

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.jarcommons-collections.jarcommons-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物件。