下面列出了怎么用android.app.AlertDialog.Builder的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* {@inheritDoc}
*/
@Override
public boolean onItemLongClick(final AdapterView<?> parent, final View view,
final int position, final long id) {
final Builder b = new Builder(getActivity());
b.setCancelable(true);
b.setItems(R.array.dialog_delete, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
LogsFragment.this
.getActivity()
.getContentResolver()
.delete(ContentUris.withAppendedId(DataProvider.Logs.CONTENT_URI, id),
null, null);
LogsFragment.this.setAdapter(true);
LogRunnerService.update(LogsFragment.this.getActivity(), null);
}
});
b.setNegativeButton(android.R.string.cancel, null);
b.show();
return true;
}
@Override
protected void onPrepareDialogBuilder(Builder builder) {
super.onPrepareDialogBuilder(builder);
if (mEntries == null || mEntryValues == null) {
throw new IllegalStateException(
"MultiSelectListPreference requires an entries array and " +
"an entryValues array.");
}
boolean[] checkedItems = getSelectedItems();
builder.setMultiChoiceItems(mEntries, checkedItems,
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
mPreferenceChanged |= mNewValues.add(mEntryValues[which].toString());
} else {
mPreferenceChanged |= mNewValues.remove(mEntryValues[which].toString());
}
}
});
mNewValues.clear();
mNewValues.addAll(mValues);
}
/**
* The single message dialog that contains title, a message, two buttons(Yes
* & No) and two listeners.
* <p/>
* If int negativeButton == 0, it will be a dialog without negative button
*/
private static AlertDialog getStandardStyledDialog(final Activity activity, int title,
int message,
DialogInterface.OnClickListener
positiveListener,
DialogInterface.OnClickListener
negativeListener,
int positiveButton, int negativeButton) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity)
.setTitle(title)
.setMessage(message)
.setCancelable(false).setPositiveButton(positiveButton, positiveListener);
if (negativeButton != 0) {
dialogBuilder.setNegativeButton(negativeButton, negativeListener);
}
return dialogBuilder.create();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADD_ACCOUNT_REQUEST_CODE && resultCode == RESULT_OK) {
refresh();
if (data == null) {
return;
}
String expires_time = data.getExtras().getString("expires_in");
long expiresDays = TimeUnit.SECONDS.toDays(Long.valueOf(expires_time));
String content = String.format(getString(R.string.token_expires_in_time), String.valueOf(expiresDays));
DevLog.printLog("AccountActivity: ", content);
if (false) {
Builder builder = new Builder(this).setMessage(content).setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
}
}
@Override
protected void onPrepareDialogBuilder(final Builder builder) {
final CustomListPreferenceAdapter customListPreferenceAdapter = new CustomListPreferenceAdapter(fonts, fontPreviewString, selectedFontFace);
builder.setAdapter(customListPreferenceAdapter, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
if (shouldPersist()) {
final Font selectedFont = fonts.get(which);
if (callChangeListener(selectedFont.fontPath)) {
selectedFontFace = selectedFont;
updateSummary();
persistString(selectedFontFace.fontPath);
}
}
dialog.cancel();
}
});
builder.setPositiveButton(null, null);
}
public static AlertDialog showAlert(final Context context, final String msg, final String title) {
if (context instanceof Activity && ((Activity) context).isFinishing()) {
return null;
}
final Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.drawable.ic_dialog_alert);
builder.setTitle(title);
builder.setMessage(msg);
builder.setPositiveButton(R.string.app_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
dialog.cancel();
}
});
final AlertDialog alert = builder.create();
alert.show();
return alert;
}
/**
* 错误提示窗口
*
* @param errorDialogOnClick
*/
public Dialog showErrorDialog(OnClickListener errorDialogOnClick) {
if (this.errorDialog == null) {
LOG.d(TAG, "initErrorDialog");
// 构造对话框
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(msgHelper.getString(MsgHelper.UPDATE_ERROR_TITLE));
builder.setMessage(msgHelper.getString(MsgHelper.UPDATE_ERROR_MESSAGE));
// 更新
builder.setPositiveButton(msgHelper.getString(MsgHelper.UPDATE_ERROR_YES_BTN), errorDialogOnClick);
errorDialog = builder.create();
}
if (!errorDialog.isShowing()) errorDialog.show();
return errorDialog;
}
private void onItemClicked(ARObject item) {
PluginActivityContext pluginActivityContext = new PluginActivityContext(
item.getDataSourceInstance().getParent().getPluginHolder()
.getPluginContext(), getContext());
View featureView = item.getVisualization().getFeatureView(
item.getEntity(), null, null, pluginActivityContext);
if (featureView != null) {
String title = item.getVisualization().getTitle(item.getEntity());
if (title == null || title.isEmpty()) {
title = "";
}
String message = item.getVisualization().getDescription(
item.getEntity());
if (message == null || message.isEmpty()) {
message = "";
}
Builder builder = new AlertDialog.Builder(getContext());
builder.setTitle(title).setMessage(message)
.setNeutralButton(R.string.cancel, null)
.setView(featureView);
builder.create().show();
}
}
/**
* The dialog that prompt to connect Internet, with listener.
*/
public static AlertDialog getNoInternetDialog(final Activity activity,
DialogInterface.OnClickListener negativeistener) {
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity)
.setTitle(R.string.msg_network_not_connected)
.setMessage(R.string.msg_try_network_again)
.setCancelable(false).setPositiveButton(R.string.settings_capital, new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
activity.startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
}
}).setNegativeButton(R.string.notNow, negativeistener);
return dialogBuilder.create();
}
/**
* Creates a dialog for given message.
*
* @param activity Parent activity.
* @param message Message contents
* @param dismissListener Listener that will be called when dialog is closed or
* cancelled.
* @return Created dialog.
*/
public static Dialog createMessageDialog(Activity activity, Message message, OnDismissListener dismissListener) {
final AlertDialog.Builder builder = new AlertDialog.Builder(activity);
final String title = message.description == null ? null : message.description.get(MessageDescription.KEY_TITLE);
if (!Utilities.isNullOrEmpty(title)) {
builder.setTitle(title);
}
final View dialogContentsView = createMessageDialogContentsView(activity, message.description);
builder.setView(dialogContentsView);
initializeMessageDialogButtons(activity, builder, message);
builder.setCancelable(true);
final AlertDialog dialog = builder.create();
if (Utilities.isNullOrEmpty(title)) {
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
}
dialog.setOnDismissListener(dismissListener);
return dialog;
}
/** 显示未开启辅助服务的对话框*/
private void showOpenAccessibilityServiceDialog() {
if(mTipsDialog != null && mTipsDialog.isShowing()) {
return;
}
View view = getLayoutInflater().inflate(R.layout.dialog_tips_layout, null);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openAccessibilityServiceSettings();
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("需要开启辅助服务正常使用");
builder.setView(view);
builder.setPositiveButton("打开辅助服务", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
openAccessibilityServiceSettings();
}
});
mTipsDialog = builder.show();
}
public static void openDialog(final Activity context)
{
final Builder builder = new AlertDialog.Builder(context);
builder.setTitle("网络不可用");
builder.setMessage("请连接网络");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which)
{
builder.create().dismiss();
context.finish();
}
});
builder.show();
}
/**
* 显示软件更新对话框
*
* @param onClickListener
*/
public Dialog showNoticeDialog(OnClickListener onClickListener) {
if (noticeDialog == null) {
LOG.d(TAG, "showNoticeDialog");
// 构造对话框
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
builder.setTitle(msgHelper.getString(MsgHelper.UPDATE_TITLE));
builder.setMessage(msgHelper.getString(MsgHelper.UPDATE_MESSAGE));
// 更新
builder.setPositiveButton(msgHelper.getString(MsgHelper.UPDATE_UPDATE_BTN), onClickListener);
noticeDialog = builder.create();
}
if (!noticeDialog.isShowing()) noticeDialog.show();
noticeDialog.setCanceledOnTouchOutside(false);// 设置点击屏幕Dialog不消失
return noticeDialog;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ADD_ACCOUNT_REQUEST_CODE && resultCode == RESULT_OK) {
refresh();
if (data == null) {
return;
}
String expires_time = data.getExtras().getString("expires_in");
long expiresDays = TimeUnit.SECONDS.toDays(Long.valueOf(expires_time));
String content = String.format(getString(R.string.token_expires_in_time), String.valueOf(expiresDays));
DevLog.printLog("AccountActivity: ", content);
if (false) {
Builder builder = new Builder(this).setMessage(content).setPositiveButton(R.string.ok,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.show();
}
}
}
public static AlertDialog showAlert(final Context context, final int msgId, final int titleId, final DialogInterface.OnClickListener lOk, final DialogInterface.OnClickListener lCancel) {
if (context instanceof Activity && ((Activity) context).isFinishing()) {
return null;
}
final Builder builder = new AlertDialog.Builder(context);
builder.setIcon(R.drawable.ic_dialog_alert);
builder.setTitle(titleId);
builder.setMessage(msgId);
builder.setPositiveButton(R.string.app_ok, lOk);
builder.setNegativeButton(R.string.app_cancel, lCancel);
// builder.setCancelable(false);
final AlertDialog alert = builder.create();
alert.show();
return alert;
}
protected boolean onTap(int index) {
OverlayItem overlayItem = overlays[index];
Builder builder = new AlertDialog.Builder(context);
builder.setMessage("This will end the activity");
builder.setCancelable(true);
builder.setPositiveButton("I agree", new OkOnClickListener());
builder.setNegativeButton("No, no", new CancelOnClickListener());
AlertDialog dialog = builder.create();
dialog.show();
return true;
}
/**
* {@inheritDoc}
*/
protected void onPrepareDialogBuilder(Builder builder) {
int index = findIndexOfValue(getSharedPreferences().getString(
getKey(), "1"));
ListAdapter listAdapter = new ImageArrayAdapter(getContext(),
R.layout.image_list_item, getEntries(), mResourceIds, index);
// Order matters.
builder.setAdapter(listAdapter, this);
super.onPrepareDialogBuilder(builder);
}
@SuppressLint("NewApi")
private void changeTextDirection(Builder dlg){
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
dlg.create();
AlertDialog dialog = dlg.show();
if (currentapiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
TextView messageview = (TextView)dialog.findViewById(android.R.id.message);
messageview.setTextDirection(android.view.View.TEXT_DIRECTION_LOCALE);
}
}
@TargetApi(21)
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked)
{
if (isChecked && compoundButton == mCompoundButton
&& getResources().getBoolean(R.bool.use_accessibility_service)
&& WatchingAccessibilityService.getInstance() == null)
{
new Builder(this).setMessage(R.string.dialog_enable_accessibility_msg)
.setPositiveButton(R.string.dialog_enable_accessibility_positive_btn, new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which)
{
Intent intent = new Intent();
intent.setAction("android.settings.ACCESSIBILITY_SETTINGS");
startActivity(intent);
}
}).setNegativeButton(R.string.dialog_enable_accessibility_Nagetive_btn, this).setOnCancelListener(this).create().show();
DefaultSharedPreferences.save(this, isChecked);
}
else if (compoundButton == mCompoundButton)
{
DefaultSharedPreferences.save(this, isChecked);
if (isChecked)
{
ViewWindow.showView(this, getPackageName() + "\n" + getClass().getName());
}
else
{
ViewWindow.removeView();
}
}
}
/**
* 展示一个通用的弹出框UI
*
* @param context 展示弹出框的上下文环境
* @param title 警告的title信息
* @param text 警告信息
*/
public static void showAlert(Context context, String title, String text) {
AlertDialog alertDialog = new Builder(context).create();
alertDialog.setTitle(title);
alertDialog.setMessage(text);
alertDialog.setCanceledOnTouchOutside(true);
alertDialog.show();
}
@Override
protected void onPrepareDialogBuilder(Builder builder) {
if(adapter == null){
adapter = new SearchableListAdapter<CharSequence>(getContext(), Arrays.asList(getEntries()), this);
}else{
adapter.clear();
adapter.addAll(Arrays.asList(getEntries()));
}
builder.setAdapter(adapter, this);
super.onPrepareDialogBuilder(builder);
}
public static void call(Activity activity, int messageId, int yes, int no, OnClickListener yesListener, OnClickListener noListener, View view) {
if (activity != null) {
Dialog dialog = new Builder(activity).setTitle(R.string.dialog_default_title).setIcon(R.drawable.dialog_icon).setMessage(messageId).setView(view).setPositiveButton(yes, yesListener).setNegativeButton(no, noListener).create();
if (!activity.isFinishing() && !activity.isRestricted()) {
try {
dialog.show();
} catch (Exception e) {
}
}
}
}
public static boolean call(Activity activity, int messageId, int yes, int no, OnClickListener yesListener, OnClickListener noListener, View view, boolean cancelable) {
if (activity == null) {
return false;
}
Dialog dialog = new Builder(activity).setTitle(R.string.dialog_default_title).setIcon(R.drawable.dialog_icon).setMessage(messageId).setCancelable(cancelable).setView(view).setPositiveButton(yes, yesListener).setNegativeButton(no, noListener).create();
if (activity.isFinishing() || activity.isRestricted()) {
return false;
}
try {
dialog.show();
} catch (Exception e) {
}
return true;
}
public static void call(Context activity, String title, String message, int yes, int no, OnClickListener yesListener, OnClickListener noListener, boolean cancelable) {
if (activity != null) {
Dialog dialog = new Builder(activity).setTitle(title).setIcon(R.drawable.dialog_icon).setMessage(message).setCancelable(cancelable).setPositiveButton(yes, yesListener).setNegativeButton(no, noListener).create();
if ((activity instanceof Activity) && !((Activity) activity).isFinishing() && !activity.isRestricted()) {
try {
dialog.show();
} catch (Exception e) {
}
}
}
}
public static void call(Activity activity, int titleId, int messageId, OnClickListener yes, OnClickListener no) {
if (activity != null) {
try {
Dialog dialog = new Builder(activity).setTitle(titleId).setIcon(R.drawable.dialog_icon).setMessage(messageId).setPositiveButton(R.string.dialog_default_ok, yes).setNegativeButton(R.string.dialog_default_no, no).create();
if (!activity.isFinishing() && !activity.isRestricted()) {
try {
dialog.show();
} catch (Exception e) {
}
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
@SuppressLint("NewApi")
private AlertDialog.Builder createDialog(CordovaInterface cordova) {
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
if (currentapiVersion >= android.os.Build.VERSION_CODES.HONEYCOMB) {
return new AlertDialog.Builder(cordova.getActivity(), AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
} else {
return new AlertDialog.Builder(cordova.getActivity());
}
}
public static void call(Activity activity, int title, int messageId, int yes, OnClickListener yesListener, boolean cancelable) {
if (activity != null) {
Dialog dialog = new Builder(activity).setTitle(title).setIcon(R.drawable.dialog_icon).setMessage(messageId).setCancelable(cancelable).setPositiveButton(yes, yesListener).create();
if (!activity.isFinishing() && !activity.isRestricted()) {
try {
dialog.show();
} catch (Exception e) {
}
}
}
}
public static void call(Activity activity, String message, OnClickListener yes) {
if (activity != null) {
Dialog dialog = new Builder(activity).setTitle(R.string.dialog_default_title).setIcon(R.drawable.dialog_icon).setMessage(message).setPositiveButton(R.string.dialog_default_ok, yes).create();
if (!activity.isFinishing() && !activity.isRestricted()) {
try {
dialog.show();
} catch (Exception e) {
}
}
}
}
public void showMessage(String title,String message)
{
Builder builder=new Builder(this);
builder.setCancelable(true);
builder.setTitle(title);
builder.setMessage(message);
builder.show();
}
@SuppressLint("NewApi")
private void changeTextDirection(Builder dlg){
int currentapiVersion = android.os.Build.VERSION.SDK_INT;
dlg.create();
AlertDialog dialog = dlg.show();
if (currentapiVersion >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1) {
TextView messageview = (TextView)dialog.findViewById(android.R.id.message);
messageview.setTextDirection(android.view.View.TEXT_DIRECTION_LOCALE);
}
}