用户登录

下面再试一下获取还有利用,用户在 AlertDialog 上面选择的动作 .. 先添加一个 String 类型的数据,名字叫 _choice .. 先让它等于 Nothing ...

然后再找个地方把它显示出来 .. 添加一个 Text .. 显示的文字是 Your choice is .. 后面加上 _choice ..

再用一个 SizedBox 在文字跟按钮之间添加点间隔 .. 把它的 height 设置成 16.0 ..

下面再去添加一个 enum ... 在类的外面定义一个 enum .. 名字叫 Action ... 里面有两个项目,一个是 Ok... 还有一个是 Cancle ..

用户按了对话框上的按钮会执行 onPressed .. 现在这里用了 Navigator.pop .. 后面可以带个数据 .. 这个 Cancel 按钮带的数据是 Action.Cancle .. 下面这个 Ok 按钮带的数据是 Action.Ok ..

用户按了哪个按钮,这个值就会是 showDialog 最终返回的值 .. 它会先返回一个 Future .. 先在它前面添加一个 await ,等待一下执行的结果 ... 这样需要把 _openAlertDialog 这个方法标记成一个 async 方法 ..

这个方法会返回 Future ..

然后在文件的顶部 .. 导入一下 dart:async 这个包 ..

下面可以给 showDialog 最终返回的值起个名字 .. 比如 action ...

这样我们就可以根据用户的选择去做一些事情了 .. 可以使用一个 switch ... 判断一下 action 的值 .. 如果是 Action.Ok

我们就用一个 setState .. 去把 _choice 的值设置成一个字符串 Ok .. 复制一份 .. 再修改一下 .. 如果是 Action.Cancel .. 我们就让 _choice 的值变成字符串 Cancle ..

下面再到模拟器上去试一下 .. 打开对话框 .. 先选择一下 Cancel 这个动作 .. 界面上现在显示的文字会是 Your choice is: Cancel ..

如果选择的是 Ok 这个动作 .. 界面上的文字就会是 Your choice is: Ok ..

AlertDialog:获取与使用动作的值《 Flutter 移动应用:对话框 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点