大家今天跟大家唠唠我前两天捣鼓安卓APP时用到的一个东西——setPositiveButton
。
事情是这样的,我在做一个简单的功能,需要用户在执行某个操作前,弹个框确认一下,免得误操作嘛比如删除个东西或者保存个设置啥的。很自然就想到安卓自带的对话框(Dialog)。
找路子
我就开始琢磨怎么搞这个对话框。安卓里头,最常用的就是那个AlertDialog
。要创建它,得先用一个叫的玩意儿。
行,那就开干。我先是创建一个Builder
对象,然后给它设置个标题,比如“温馨提示”,再加点说明文字,告诉用户这个框是干嘛的,比如“您确定要删除这条记录吗?”。这都好办,用setTitle()
和setMessage()
就行。
关键一步:加上“确定”按钮
光有提示不行,得让用户能点个按钮表示“确定”或者“同意”。这时候,我就找到今天的主角——setPositiveButton
。
这个方法名字挺直白的,"Positive"嘛就是积极的、肯定的意思。用它,就能往对话框上加一个“确定”按钮。用法也简单,你得给它两样东西:
- 按钮上显示的文字:比如“确定”、“好的”、“同意”之类的。
- 点击按钮后要干的事:这个得通过一个监听器(Listener)来实现。简单说,就是你告诉程序,“当用户点这个‘确定’按钮后,你就去执行这段代码”。
我的实践过程
具体我是这么写的:
在我的Activity代码里,搞一个实例:
new *(this)
这里的this
一般就是指当前的Activity。
然后,设置标题和消息:
.setTitle("提示")
.setMessage("确定要执行这个操作吗?")
就是用setPositiveButton
:
.setPositiveButton("确定", new *() {
@Override
public void onClick(DialogInterface dialog, int which) {
// 这里写点击“确定”后要干的活儿
// 比如调用一个删除数据的方法,或者发个通知啥的
doSomething();
你看,我在里面传“确定”这两个字,然后 new 一个 OnClickListener
。重点就在那个 onClick
方法里面,你想让“确定”按钮干代码就写在那里头。
顺便提一句,通常有“确定”就有“取消”。我一般会再加一个setNegativeButton
:
.setNegativeButton("取消", null)
给它传个 null
作为监听器,意思就是点“取消”啥也别干,直接把对话框关就行,简单省事。
别忘把这个Builder
创建成真正的对话框并显示出来:
.create().show();
这样一套下来,一个带“确定”和“取消”按钮的确认框就搞定。
结果
测试一下,效果不错。点“确定”,执行我写在onClick
里的逻辑;点“取消”,对话框就消失。目的达到!
setPositiveButton
就是安卓里给对话框添加“确定”类按钮的标准方法,用起来不复杂,但非常实用。基本上需要用户确认操作的地方,都离不开它。好,今天的实践分享就到这儿,希望能帮到有需要的朋友。