Android通用的EmptyLayout-展示不用状态的界面

前言在做项目的时候,经常会遇到列表数据为空的时候展示的空布局,如果你用的是ListView ,目测会经常使用ListView的一个方法setEmptyView ,如果你用的是RecyclerView,你也许会用自定义View来实现,但是,这些方法虽然使用起来简单,但是如果你提供一个复杂的布局,例如: 在数据加载失败后,添加一个Button让用户可以选择重新加载数据。 你肯定会说,findviewbyId找到这个button,给它设置点击事件,一个两个可以接受,但是,界面多了呢? 那你说了那么多,有没有好的解决办法呢? 当然有 而且是几行代码搞定的     继续阅读
Wey Ye's avatar
Wey Ye 8月 30, 2016
 | 

调用System.gc没有立即执行的解决方法

查看源码当我们调用System.gc()的时候,其实并不会马上进行垃圾回收,甚至不一定会执行垃圾回收,查看系统源码可以看到 1234567891011121314151617181920/** * Indicates to the VM that it would be a good time to run the * garbage collector. Note that this is a hint only. There is no guarantee * that the garbage collector will actually be run. */ public static void gc() { boolean shouldRunGC; synchronized(lock) { shouldRunGC = justRanFinalization; if (shouldRunGC) { justRanFinalization = false; } else { runGC = true; } } if (shouldRunGC) { Runtime.getRuntime().gc(); } } 也就是justRanFinalization=true的时候才会执行     继续阅读
Wey Ye's avatar
Wey Ye 8月 29, 2016
 | 

Dialog样式的Activity-可以在任何地方弹出的Dialog

最近项目用到一个需求,当收到透传消息后不管在哪个界面都要弹出一个dialog,当时觉得这还不简单嘛,new一个呀 ,于是我就在receiver里面new了一个 然后就报了如下的错 android.view.WindowManager$BadTokenException: Unable to add window – token null is not for an applicationandroid.view.ViewRootImpl.setView(ViewRootImpl.java:567) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:269) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69) at android.app.Dialog.show(Dialog.java:323) at com.yipwey.dialogactivity.PushReceiver.onReceive(PushReceiver.java:16) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2508) at android.app.ActivityThread.access$2000(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1323)     继续阅读
Wey Ye's avatar
Wey Ye 8月 12, 2016
 |