我想这样做的原因完全是另一个讨论,但我需要找出最好的方法,使所有警报对话框的右侧都有积极按钮。请注意,在3.0及以下版本中,按钮通常显示为OK/Cancel,在4.0及以上版本中,按钮显示为Cancel/OK。我想以最简单的方式强制我的应用程序使用Cancel/OK。我在应用程序中有很多AlertDialogs。
您可以扩展警报对话框。生成器
要强制执行订单:
public class MyDialog extends AlertDialog.Builder {
public MyDialog(Context arg0) {
super(arg0);
}
@Override
public Builder setPositiveButton(CharSequence text, OnClickListener listener) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return super.setNegativeButton(text, listener);
} else {
return super.setPositiveButton(text, listener);
}
}
@Override
public Builder setNegativeButton(CharSequence text, OnClickListener listener) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
return super.setPositiveButton(text, listener);
} else {
return super.setNegativeButton(text, listener);
}
}
}
这是我的解决方案。这是我的工作。
// Show alertDialog after building
AlertDialog alertDialog = createAlertDialog(context);
alertDialog.show();
// and find positiveButton and negativeButton
Button positiveButton = (Button) alertDialog.findViewById(android.R.id.button1);
Button negativeButton = (Button) alertDialog.findViewById(android.R.id.button2);
// then get their parent ViewGroup
ViewGroup buttonPanelContainer = (ViewGroup) positiveButton.getParent();
int positiveButtonIndex = buttonPanelContainer.indexOfChild(positiveButton);
int negativeButtonIndex = buttonPanelContainer.indexOfChild(negativeButton);
if (positiveButtonIndex < negativeButtonIndex) {
// prepare exchange their index in ViewGroup
buttonPanelContainer.removeView(positiveButton);
buttonPanelContainer.removeView(negativeButton);
buttonPanelContainer.addView(negativeButton, positiveButtonIndex);
buttonPanelContainer.addView(positiveButton, negativeButtonIndex);
}
不幸的是,我不相信你能。然而,引用文件:
注意:您只能将每种按钮类型中的一种添加到AlertDialog。也就是说,您不能有多个“积极”按钮。这将可能的按钮数量限制为三个:正极、中性和负极。这些名称在技术上与按钮的实际功能无关,但可以帮助您跟踪哪个按钮起作用。
所以你可以把不同的按钮变成你想要的任何东西。您在这里看到的是已切换的顺序(根据此答案排序):
您可以尝试检查Build。VERSION
并使用它来决定运行时哪个按钮是哪个。
因此,我创建了一个自定义主题,并将其作为AlertDialog.Builder构造函数的参数提供。 下面是显示对话框的代码: 风格如下: 我能够找到我在样式中添加的几个属性,根据它们的状态更改单选按钮/文本的颜色。但是我无法自定义文本外观(我想更改大小、提供填充等)。 我确信有一些属性可以用来设置文本的样式,但我找不到它。有人能帮我吗?谢谢
我想更改正极按钮的颜色。我该怎么做? AlerDialog: 谢谢!(我的问题在kotlin中,与do在kotlin中。)
在我的活动中,我有一个listview和一个按钮。每一个都有各自的目的。 我的listview显示另一个活动中的项目详细信息。 问题是如何在相同的活动中为按钮实现onClickListener?
问题内容: 我正在尝试使用以下代码设置按钮文本: 这是我的FXML: 但这行不通,我不明白为什么,还有其他人知道如何使用JavaFX设置按钮文本吗?>。>; 我觉得JavaFX不像Swing那样简单…但是无论如何,有人知道我在做什么错吗?另外,有没有人知道有什么资源可以学习FXML?我喜欢FXML而不是用Java进行编码,但是似乎没有太多的东西,我是否是世界上唯一喜欢FXML而不是JavaFX G
如何在同一个字母中设置助记符解析。在我的项目中,在button中设置助记符,但button<code>setText</code>在每个事件操作中都会发生变化,但在<code>_o</code>中助记符是相同的,但短键只在一个事件中起作用。如何解决这个问题 抱歉,我的< code >英语
问题内容: 我将按钮放在带有GridLayout的JPane中。然后,我使用BoxLayout.Y_AXIS将JPanel放入另一个JPanel中。我希望GridLayout中的按钮为正方形。我使用tmp.setSize(30,30),它不起作用。我也尝试使用,但我不知道X和Y是什么。那么,做这些东西的正确方法是什么? 添加: 我仍然无法解决问题。这是我正在尝试执行的代码: 问题是Java试图使宽