我只是讓自己的自定義類來模擬一個AlertDialog,這樣一來就可以,沒有附加條件使用自己的佈局。 (有一些奇怪的問題,如果你想要一個完整樣式的AlertDialog,你不能完全擺脫框架)。像這樣的東西,但你可以完全按照你想要的擴展它:
public class CustomDialog extends Dialog {
private Button positive, negative;
public CustomDialog(Context context) {
super(context);
initialize(context);
}
protected CustomDialog(Context context, boolean cancelable, OnCancelListener cancelListener) {
super(context, cancelable, cancelListener);
initialize(context);
}
public CustomDialog(Context context, int theme) {
super(context, theme);
initialize(context);
}
private void initialize(Context c) {
//Inflate your layout, get a handle for the buttons
positive = (Button)layout.findViewById(R.id.positive):
negative = (Button)layout.findViewById(R.id.negative):
positive.setVisibility(View.GONE);
negative.setVisibility(View.GONE);
}
public void setPositiveButton(String buttonText, View.OnClickListener listener) {
positive.setText(buttonText);
positive.setOnClickListener(listener);
positive.setVisibility(View.VISIBLE);
}
public void setNegativeButton(String buttonText, View.OnClickListener listener) {
negative.setText(buttonText);
negative.setOnClickListener(listener);
negative.setVisibility(View.VISIBLE);
}
}
我首先建議嘗試setPositiveButton()和setNegativeButton()。 – 2013-02-09 00:12:57
@Code-Guru這些方法不存在於Dialog類中。大衛,爲什麼不使用AlertDialog而不是重新創建它? – Sam 2013-02-09 00:24:28
@Sam對不起,我應該首先仔細檢查API指南。您可以使用AlertDialog而不是普通的對話框。它有一個'setButton()'方法,可以做你想做的事情。 – 2013-02-09 00:30:21