[原创]apk文件添加AlertDialog对话框
发表于:
2012-6-26 17:56
23221
[原创]apk文件添加AlertDialog对话框
今天研究了一下apk文件添加AlertDialog对话框,搞了一天终于搞定了,发个破文分享一下 。
使用到的工具:ApktoolGui v2.0 Final(http://bbs.pediy.com/showthread.php?t=148006有下载)
添加对话框的软件:合金弹头v1.8
首先添加一个最简单的应用,就是弹出一个消息框,在android中可以这样实现
new AlertDialog.Builder(self)
.setTitle("普通对话框")
.setMessage("你好,Android!")
.show();
转化成smali如下图:
具体语法解释见http://bbs.pediy.com/showthread.php?t=151769中我的回帖。
将合金弹头反编译,将上述smali代码插入MainActivity.smali中的create函数的return-void语句前面,重新编译成apk文件,安装运行
运行成功,O了。
再来点复杂点的吧
下面我们来添加一个带一个确定按钮的对话框,android代码为
new AlertDialog.Builder(this)
.setTitle("普通对话框")
.setMessage("你好,Android!")
.setPositiveButton("确定",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialoginterface, int i){
//按钮事件
}
})
.show();
转换成smali语言如下:
我们看到代码中多了以下几条语句
.line 33
const-string v2, "\u786e\u5b9a"
new-instance v3, Lcom/kinglau/mslug/MainActivity$5;
invoke-direct {v3, p0}, Lcom/kinglau/mslug/MainActivity$5;-><init>(Lcom/kinglau/mslug/MainActivity;)V
invoke-virtual {v1, v2, v3}, Landroid/app/AlertDialog$Builder;->setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
上传的附件: