人生倒计时
- 今日已经过去小时
- 这周已经过去天
- 本月已经过去天
- 今年已经过去个月
海外点赞盘源码(国外点赞盘)
AlertDialog源码解析
在MainActivity中实例化一个AlertDialog对象:
源码分析,整个时序图如下:
1.首先我们在MainActivity中实例化一个AlertDialog.Builder对象,构造方法如下:
在这个构造方法中会实例化AlertController.AlertParams对象,其实这个AlertParams就是我们传递的某些设置,诸如title、message等。
如果没做任何处理,Android Studio乃至其它的IDE是无法查看Android隐藏的源码的,而AlertController属于隐藏的源码,我们该怎么处理呢?可以查看我的另外一个博客: Android Studio 查看Android内部隐藏源码
2.然后我们调用show方法,show方法内部如下:
调用AlertDialog内部类Builder中的create方法,我们可以看看create方法内部做了哪些处理:
创建了AlertDialog对象,并调用AlertParams对象的apply方法,接着就是给AlertDialog设置一些监听器。我们来仔细看看这个apply方法:
其实这里也没什么,无非就是将我们通过链式调用设置的一些重新设置到AlertController中。
3.接下来我们返回到Builder类的show方法:
我们已经查看了create方法,再来看dialog.show方法:
其实这里是调用父类Dialog的show方法,可以看到调用了dispatchOnCreate方法,点击进去:
调用了onCreate方法,点击进去,Dialog类没有任何实现,这时候我们想到它的子类AlertDialog,去这个类找onCreate的实现:
调用了AlertController对象的installContent方法,点击进去:
可以看到这里调用了setupView方法,点击进去:
原来真正的布局与设置都是在这里,如果拿房子举例来说,这个AlertController类才是房子,而AlertDialog这个类是建造者Builder,只不过它将Builder又封装了一层而已。
这里我们看到了熟悉的findViewById,那么有人又会想,那布局到底是哪一个呢?其实是alert_dialog,我们可以在AlertController这个类中搜索alert_dialog即可。
细细查看一些Android源码,其实也没那么难,关键在于事在人为,但是对于一些为何要这样设计,这样设计有什么好处,这个就需要我们花时间去深思其中的奥秘!
喜欢本篇博客的简友们,就请来一波点赞,您的每一次关注,将成为我前进的动力,谢谢!
快手抖音脸书怎么弄
登录到个人帐户
从页面顶部水平菜单的右侧点击“Create”。
在下拉菜单中单击“Page”,按照提示完成业务页面设置。
输入页面名称和业务类别,点击“Continue”并上传头像和封面照片。
导航至你的商业页面左侧的“About”选项卡,并完成所有填写部分,如输入网站URL、编写业务摘要、添加工作时间和任何其他相关信息。
单击页面右侧的“+ Add a Button”按钮,添加CTA(行动号召)按钮。然后,从选项列表中选择要添加的CTA类型,并按照提示完成该过程。
添加或删除标签,请单击右上角菜单中的“Settings”。从左侧菜单中找到“Templates and Tabs”,在模板和标签页中,向下滚动到“Tabs”部分,查看页面当前包含的所有标签。通过点击标签右边的“Settings”按钮来更新或删除已有的标签。要添加新标签,滚动到页面底部,点击“Add a tab”按钮。
Autojs微信运动自动点赞免root脚本源码
热爱社交的张三每天无时无刻不在关注好友的动态就连微信运动也不例外,在夜深人静的晚上张三打开手机看着微信推送给他的运动排行榜,小手毫不犹豫的为每一位微信好友点赞,但热爱社交的张三好友实在太多才点了七八个赞就感到枯燥无聊,于是心想如果要是有一个自动点赞的脚本该多好!
初学Autojs实在不知道能写啥有用的脚本。
简单讲就是无需root就可执行脚本实现手机自动化操作。
打开Autojs查看布局获取点赞框架信息,我们可以看到点赞空间点击属性位False这时我们可以找他的父亲框架进行查看直到点击属性位true。
通过text("赞我的朋友")查找当前页面如果找到就进行返回如果没找到继续点赞。
通过scrollDown()函数实现。
不到20秒就点完了一页,张三直接狂喜!


