package com.mappn.gfan.common.util;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.graphics.Color;
import android.text.TextUtils;
import android.text.method.PasswordTransformationMethod;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.TextView;
import com.mappn.gfan.R;
import com.mappn.gfan.ui.ProductDetailActivity;
/**
* <p>
* Dialog util
* </p>
*
* @author llh
*/
public class DialogUtil {
public static interface WarningDialogListener {
public void onWarningDialogOK(int id);
public void onWarningDialogCancel(int id);
}
public static interface ProgressDialogListener {
public void onProgressDialogCancel(int id);
}
public static Dialog createIndeterminateProgressWhiteTextDialog(final Context context,
final int id, String hint, boolean cancelable) {
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_indeterminate_progress_white_text, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(cancelable)
.setView(view);
// if (cancelable) {
// builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
// public void onClick(DialogInterface dialog, int whichButton) {
// if (context instanceof Activity)
// ((Activity) context).removeDialog(id);
//
// if (listener != null)
// listener.onProgressDialogCancel(id);
// }
// });
// builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
// public void onCancel(DialogInterface arg0) {
// if (context instanceof Activity)
// ((Activity) context).removeDialog(id);
//
// if (listener != null)
// listener.onProgressDialogCancel(id);
// }
// });
// }
Dialog dialog = builder.create();
// if (!cancelable) {
// dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
// public void onDismiss(DialogInterface arg0) {
// if (context instanceof Activity)
// ((Activity) context).removeDialog(id);
// }
// });
// }
return dialog;
}
/**
* <p>
* 创建支付确认提醒框
* </p>
*
* @param context
* {@link ProductDetailActivity} object
* @param id
* dialog id
* @param hint
* hint message
* @return an input dialog instance
*/
public static Dialog newEnsurePurchaseDialog(final ProductDetailActivity context, final int id,
String hint) {
/*
* Common input dialog Two buttons, one edittext, one hint, and title
*/
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_text_entry, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
// set init value
final EditText etInput = (EditText) view.findViewById(R.id.et_input);
etInput.setTransformationMethod(PasswordTransformationMethod.getInstance());
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setIcon(android.R.drawable.ic_dialog_alert).setTitle(R.string.app_download)
.setView(view)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = etInput.getText().toString();
if (TextUtils.isEmpty(value)) {
// 密码不能为空
Utils.makeEventToast(context,
context.getString(R.string.error_password_empty), false);
} else {
context.removeDialog(id);
context.purchaseProduct(value);
}
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
context.removeDialog(id);
}
});
return builder.create();
}
/**
* <p>
* 创建账户余额不足提醒框
* </p>
*
* @param context
* {@link ProductDetailActivity} object
* @param id
* dialog id
* @param warning
* warning message, should not be null
* @param listener
* {@link WarningDialogListener} instance, should not be null
* @return a warning dialog instance
*/
public static Dialog newInsufficientBalanceDialog(final ProductDetailActivity context,
final int id, String warning) {
/*
* Common warning dialog Two buttons, one message, an icon
*/
return new AlertDialog.Builder(context)
.setTitle(R.string.attention)
.setMessage(warning)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
context.removeDialog(id);
context.gotoDepositPage();
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
context.removeDialog(id);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
context.removeDialog(id);
}
}).create();
}
public static interface YesNoDialogListener {
public void onYesDialog(int id);
public void onNoDialog(int id);
}
public static interface CheckBoxWarningDialogListener {
public void onWarningDialogOK(int id, boolean checked);
public void onWarningDialogCancel(int id);
}
public static interface InfoDialogListener {
public void onInfoDialogOK(int id);
}
public static interface InputDialogListener {
public void onInputDialogOK(int id, String value);
public void onInputDialogCancel(int id);
}
public static interface EditTextDialogListener {
public void onEditTextDialogOK(int id, String value);
public void onEditTextDialogCancel(int id);
}
public static interface UserPwdDialogListener {
public void onUserPwdDialogOK(int id, String user, String pwd, boolean isChecked);
public void onUserPwdDialogCancel(int id);
public void onUserPwdDialogRegister(int id);
}
public static interface RegisterDialogListener {
public void onRegisterDialogOK(int id, String user, String pwd1, String pwd2);
public void onRegisterDialogCancel(int id);
}
public static interface ListCheckboxDialogListener {
public void onListDialogOK(int id, CharSequence[] items, int selectedId, int selectedIndex);
public void onListDialogCancel(int id, CharSequence[] items);
}
public static interface ListDIalogListener {
public void onListDialogOK(int id, int which);
}
public static interface ListDialogListener2 {
public void onListDialogOK2(int id, Object[] items, int selectedItem);
public void onListDialogCancel2(int id, Object[] items);
}
public static interface RatingDialogListener {
public void onRatingDialogOK(int id, float ratings);
public void onRatingDialogCancel();
}
private static int mWhich;
private static int[] mItemIds;
private static int mRating;
public static ProgressDialog createDeterminateProgressDialog(final Context context, final int id, String hint, boolean cancelable,
final ProgressDialogListener listener) {
ProgressDialog pd = new ProgressDialog(context);
pd.setIcon(android.R.drawable.ic_dialog_info);
pd.setTitle(hint);
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
if (cancelable) {
pd.setButton(context.getString(R.string.cancel), new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
pd.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
}
if (!cancelable) {
pd.setOnDismissListener(new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
}
});
}
return pd;
}
/**
* <p>
* Create a warning dialog which only has one OK button
* </p>
*
* @param context
* {@link Context} object
* @param id
* dialog id
* @param warning
* warning message
* @return a warning dialog instance
*/
public static Dialog createOKWarningDialog(final Context context, final int id, String warning,
final WarningDialogListener listener) {
/*
* Common warning dialog Only one OK buttons, one message, an icon
*/
return new AlertDialog.Builder(context).setCancelable(false)
.setTitle(R.string.attention).setMessage(warning)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onWarningDialogOK(id);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onWarningDialogOK(id);
}
}).create();
}
public static Dialog createIndeterminateProgressDialog(final Context context, final int id, String hint, boolean cancelable,
final ProgressDialogListener listener) {
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_indeterminate_progress_white_text, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(cancelable).setView(view);
if (cancelable) {
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
}
Dialog dialog = builder.create();
if (!cancelable) {
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
}
});
}
return dialog;
}
/**
* <p>
* Create a warning dialog
* </p>
*
* @param context
* {@link Context} object
* @param id
* dialog id
* @param warning
* warning message, should not be null
* @param listener
* {@link WarningDialogListener} instance, should not be null
* @return a warning dialog instance
*/
public static Dialog createYesNoWarningDialog(final Context context, final int id, String warning, final WarningDialogListener listener) {
/*
* Common warning dialog Two buttons, one message, an icon
*/
return new AlertDialog.Builder(context).setTitle(R.string.attention).setMessage(warning).setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onWarningDialogOK(id);
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
if (listener != null)
listener.onWarningDialogCancel(id);
}
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
}
}).create();
}
/**
* <p>
* Create a info dialog which only has one OK button
* </p>
*
* @param context
* {@link Context} object
* @param id
* dialog id
* @param info
* info message
* @return a info dialog instance
*/
public static Dialog createInfoDialog(final Context context, final int id, String info,
final InfoDialogListener listener) {
/*
* Common warning dialog Only one OK buttons, one message, an icon
*/
return new AlertDialog.Builder(context).setIcon(android.R.drawable.ic_dialog_info)
.setTitle(context.getString(R.string.info)).setMessage(info)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onInfoDialogOK(id);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onInfoDialogOK(id);
}
}).create();
}
/**
* <p>
* Create a YesNo dialog
* </p>
*
* @param context
* {@link Context} object
* @param id
* dialog id
* @param info
* info message
*
* @return a YesNo dialog instance
*/
public static Dialog createYesNoDialog(final Context context, final int id, String info, final YesNoDialogListener listener) {
return new AlertDialog.Builder(context).setIcon(R.drawable.alert_dialog_icon).setTitle(info).setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onYesDialog(id);
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onNoDialog(id);
}
}).create();
}
public static Dialog createShowHintOKDialog(final Context context, final int id, String title, String warning) {
/*
* Common warning dialog Only one OK buttons, one message, an icon
*/
return new AlertDialog.Builder(context).setTitle(title).setMessage(warning).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
}
}).create();
}
public static Dialog createListDialog(final Context context, final int id, int stringArrayId, final ListDIalogListener listener) {
AlertDialog.Builder builder = new AlertDialog.Builder(context).setItems(stringArrayId, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onListDialogOK(id, which);
}
});
return builder.create();
}
public static Dialog createListCheckboxDialog(final Context context, final int id, final CharSequence[] items, int initialSelection,
final ListCheckboxDialogListener listener) {
return createListCheckboxDialog(context, id, items, null, initialSelection, listener);
}
public static Dialog createListCheckboxDialog(final Context context, final int id, final CharSequence[] items, final int[] itemIds, int initialSelection,
final ListCheckboxDialogListener listener) {
mWhich = initialSelection;
if (itemIds != null && itemIds.length >= items.length)
mItemIds = itemIds;
else
mItemIds = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onListDialogCancel(id, items);
}
});
if (initialSelection == -1) {
builder.setAdapter(new ArrayAdapter<CharSequence>(context, R.layout.market_list_item_textview_large_inverse, items),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onListDialogOK(id, items, mItemIds == null ? -1 : mItemIds[whichButton], whichButton);
}
});
} else {
builder.setSingleChoiceItems(new ArrayAdapter<CharSequence>(context, R.layout.market_list_item_single_choice, R.id.text1, items), initialSelection,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mWhich = whichButton;
}
}).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onListDialogOK(id, items, mItemIds == null ? -1 : mItemIds[whichButton], mWhich);
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onListDialogCancel(id, items);
}
});
}
return builder.create();
}
/**
* <p>
* Create an input dialog
* </p>
*
* @param context
* {@link Context} object
* @param id
* dialog id
* @param hint
* hint message
* @param initValue
* initial string value in text box, can be null if no initial value
* @param secure
* true if you want to input password
* @param listener
* {@link InputDialogListener} instance, should not be null
* @return an input dialog instance
*/
public static Dialog createInputDialog(final Context context, final int id, String hint, String initValue, boolean secure,
final InputDialogListener listener) {
/*
* Common input dialog Two buttons, one edittext, one hint, and title
*/
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_text_entry, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
// set init value
final EditText etInput = (EditText) view.findViewById(R.id.et_input);
if (initValue != null) {
etInput.setText(initValue);
}
if (secure)
etInput.setTransformationMethod(PasswordTransformationMethod.getInstance());
return new AlertDialog.Builder(context).setIcon(android.R.drawable.ic_dialog_alert).setTitle(R.string.app_download).setView(view).setPositiveButton(
R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = etInput.getText().toString();
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogOK(id, value);
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogCancel(id);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogCancel(id);
}
}).create();
}
public static Dialog createInputDialog(final Context context, final int id, String hint, String initValue, String title, String hintValue, boolean secure,
final InputDialogListener listener) {
/*
* Common input dialog Two buttons, one edittext, one hint, and title
*/
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_text_entry, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
tvHint.setVisibility(View.GONE);
// set init value
final EditText etInput = (EditText) view.findViewById(R.id.et_input);
if (initValue != null) {
etInput.setText(initValue);
}
if (hintValue != null) {
etInput.setHint(hintValue);
}
if (secure)
etInput.setTransformationMethod(PasswordTransformationMethod.getInstance());
return new AlertDialog.Builder(context).setIcon(android.R.drawable.ic_dialog_alert).setTitle(title).setView(view).setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = etInput.getText().toString();
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogOK(id, value);
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogCancel(id);
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogCancel(id);
}
}).create();
}
public static Dialog createRatingDialog(final Context context, final int id, int initRating, int ratingCount, final RatingDialogListener listener) {
mRating = initRating;
LayoutInflater vi = LayoutInflater.from(context);
View view = vi.inflate(R.layout.alert_dialog_ratings_entry, null, false);
TextView tvRating = (TextView) view.findViewById(R.id.tv_ratingCount);
tvRating.setText(context.getString(R.string.hint_rating_count, ratingCount));
final TextView tvRatingHint = (TextView) view.findViewById(R.id.rating_level_hint);
tvRatingHint.setText(context.getResources().getStringArray(R.array.rating)[mRating - 1]);
final RatingBar rb = (RatingBar) view.findViewById(R.id.rb_click);
rb.setRating(initRating);
rb.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
@Override
public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
if (fromUser) {
mRating = (int) rating;
ratingBar.setRating(mRating);
}
tvRatingHint.setText(context.getResources().getStringArray(R.array.rating)[mRating - 1 >= 0 ? mRating - 1 : 0]);
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(R.string.rating);
builder.setView(view);
builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null) {
listener.onRatingDialogOK(id, mRating);
}
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onRatingDialogCancel();
}
}).setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onRatingDialogCancel();
}
});
return builder.create();
}
public static Dialog createBigInputDialog(final Context context, final int id, final int titleID, final InputDialogListener listener) {
/*
* Common input dialog Two buttons, one edittext, one hint, and title
*/
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_big_input, null);
// set init value
final EditText etInput = (EditText) view.findViewById(R.id.et_input);
return new AlertDialog.Builder(context).setTitle(titleID).setView(view).setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
String value = etInput.getText().toString();
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogOK(id, value);
}
}).setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onInputDialogCancel(id);
}
}).create();
}
public static Dialog createIndeterminateProgressWhiteTextDialog(final Context context, final int id, String hint, boolean cancelable,
final ProgressDialogListener listener) {
LayoutInflater factory = LayoutInflater.from(context);
View view = factory.inflate(R.layout.alert_dialog_indeterminate_progress_white_text, null);
// set hint
if (hint == null) {
throw new RuntimeException("Must provide a hint string for input dialog");
}
TextView tvHint = (TextView) view.findViewById(R.id.tv_hint);
tvHint.setText(hint);
AlertDialog.Builder builder = new AlertDialog.Builder(context).setCancelable(cancelable).setView(view);
if (cancelable) {
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
builder.setOnCancelListener(new DialogInterface.OnCancelListener() {
public void onCancel(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
if (listener != null)
listener.onProgressDialogCancel(id);
}
});
}
Dialog dialog = builder.create();
if (!cancelable) {
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
public void onDismiss(DialogInterface arg0) {
if (context instanceof Activity)
((Activity) context).removeDialog(id);
}
});
}
return dialog;
}
public static Dialog createYesNo2TVDialog(final Context context, final int id, String hint, String warning, final WarningDialogListener listener) {
View view = new LinearLayout(context);
LayoutInflater vi = LayoutInflater.from(context);
view = vi.inflate(R.layout.alert_dialog_2_tv, null, false);
TextView tv_hint = (TextView) view.findViewById(R.id.tv_hint);
TextView tv_warning = (TextView) view.findViewById(R.id.tv_warning);
tv_hint.setTextColor(Color.WHITE);
tv_hint.setText(hint);
tv_warning.setTextColor(Color.RED);
tv_warning.setText(warning);
return new AlertDialog.Builder(context).setView(view).setTitle(R.string.attention).setPositiveButton(R.string.yes,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
}
if (listener != null)
listener.onWarningDialogOK(id);
}
}).setNegativeButton(R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
if (context instanceof Activity) {
((Activity) context).removeDialog(id);
if (listener != null)
listener.onWarningDialogCancel(id);
}
}
}).create();
}
}