本文共 4155 字,大约阅读时间需要 13 分钟。
import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG; private void handleShowKeyboardShortcuts(ListkeyboardShortcutGroups) { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mContext); LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( LAYOUT_INFLATER_SERVICE); final View keyboardShortcutsView = inflater.inflate( R.layout.keyboard_shortcuts_view, null); populateKeyboardShortcuts((LinearLayout) keyboardShortcutsView.findViewById( R.id.keyboard_shortcuts_container), keyboardShortcutGroups); dialogBuilder.setView(keyboardShortcutsView); dialogBuilder.setPositiveButton(R.string.quick_settings_done, mDialogCloseListener); mKeyboardShortcutsDialog = dialogBuilder.create(); mKeyboardShortcutsDialog.setCanceledOnTouchOutside(true); Window keyboardShortcutsWindow = mKeyboardShortcutsDialog.getWindow(); keyboardShortcutsWindow.setType(TYPE_SYSTEM_DIALOG); mKeyboardShortcutsDialog.show(); } private final OnClickListener mDialogCloseListener = new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dismissKeyboardShortcuts(); } };
2
public void showDialog(Context context) { if (!canShowAlertDialog(context)) { Log.w(TAG, "Cannot create a dialog, the WebView context is not an Activity"); mResult.cancel(); return; } String title, displayMessage; int positiveTextId, negativeTextId; if (mType == UNLOAD) { title = context.getString(com.android.internal.R.string.js_dialog_before_unload_title); displayMessage = context.getString( com.android.internal.R.string.js_dialog_before_unload, mMessage); positiveTextId = com.android.internal.R.string.js_dialog_before_unload_positive_button; negativeTextId = com.android.internal.R.string.js_dialog_before_unload_negative_button; } else { title = getJsDialogTitle(context); displayMessage = mMessage; positiveTextId = com.android.internal.R.string.ok; negativeTextId = com.android.internal.R.string.cancel; } AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setTitle(title); builder.setOnCancelListener(new CancelListener()); if (mType != PROMPT) { builder.setMessage(displayMessage); builder.setPositiveButton(positiveTextId, new PositiveListener(null)); } else { final View view = LayoutInflater.from(context).inflate( com.android.internal.R.layout.js_prompt, null); EditText edit = ((EditText) view.findViewById(com.android.internal.R.id.value)); edit.setText(mDefaultValue); builder.setPositiveButton(positiveTextId, new PositiveListener(edit)); ((TextView) view.findViewById(com.android.internal.R.id.message)).setText(mMessage); builder.setView(view); } if (mType != ALERT) { builder.setNegativeButton(negativeTextId, new CancelListener()); } builder.show(); }-------------------------------------------------------------------------------------private class CancelListener implements DialogInterface.OnCancelListener, DialogInterface.OnClickListener { @Override public void onCancel(DialogInterface dialog) { mResult.cancel(); } @Override public void onClick(DialogInterface dialog, int which) { mResult.cancel(); } } private class PositiveListener implements DialogInterface.OnClickListener { private final EditText mEdit; public PositiveListener(EditText edit) { mEdit = edit; } @Override public void onClick(DialogInterface dialog, int which) { if (mEdit == null) { mResult.confirm(); } else { mResult.confirm(mEdit.getText().toString()); } } }
转载地址:http://syguk.baihongyu.com/