gpt4 book ai didi

Android AlertDialog BUTTON_POSITIVE/BUTTON_NEGATIVE顺序

转载 作者:太空狗 更新时间:2023-10-29 13:33:57 25 4
gpt4 key购买 nike

我知道在 ICS 之前,AlertDialog 中的标准顺序是“确定”/“取消”,而在 ICS 中已经发生了变化(标准顺序变成了“取消”/“确定”)

但是,即使我使用

alert.setButton(AlertDialog.BUTTON_POSITIVE, "Ok", ...)
alert.setButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", ...)

我在 pre-ICS 和 ICS 中运行应用程序得到相同的结果:在这两个选项中,正选项出现在左侧,负选项出现在右侧。

这不应该是自动的,因为我们使用系统常量来定义正数 (AlertDialog.BUTTON_POSITIVE) 和负数 (AlertDialog.BUTTON_NEGATIVE) 在哪里?

编辑:接受解决方案后,我想指出我现在正在使用以下代码在 ICS 和 pre-ICS 中以正确的顺序设置按钮:

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) { // pre-ICS, show Positive/Negative
alertDialog.setButton(labelPositive, positiveListener);
alertDialog.setButton2(labelNegative, negativeListener);
} else { // ICS+, show Negative/Positive
alertDialog.setButton(labelNegative, negativeListener);
alertDialog.setButton2(labelPositive, positiveListener);
}

最佳答案

我不确定您期望的答案是什么...常量值是相同的,Android 只是切换了措辞。

您可能知道 BUTTON_POSITIVE没有与“平权”行动相关联的授权。所以BUTTON_POSITIVE可以像“确定”代码一样轻松地拥有“取消”代码,实际上它们只是常量(正数:-1,中性:-2,负数:-3)。

想象一个预 ICS 对话框,其中正(左)和负(右)按钮分别标记为 <--> .观察如果 ICS 确实自动切换现有常量的值会发生什么:

        Pre-ICS Dialog          |        Post-ICS Dialog
--------------------------------|-------------------------------
| <- | | -> | | | -> | | <- |
ie. "Ok" "Cancel" | "Cancel" "Ok"

按钮不再有意义......

简而言之,ICS 会通过自动重新排序 按钮来破坏一代中的现有代码。因此,如果默认标签的顺序在 ICS 前后设备中一致的想法确实困扰您,那么请考虑使用它们的常量值(-1 , -2 , -3 ) 而不是他们的别名。

关于Android AlertDialog BUTTON_POSITIVE/BUTTON_NEGATIVE顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12695556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com