@Override protected Dialog onCreateDialog(final int id) { Dialog dialog; switch (id) { case DIALOG_MULTIPLE_BOOKMARKS: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Multiple bookmarks found!"); String[] items = new String[focusedBookmarkIds.size()]; for (int i = 0; i < focusedBookmarkIds.size(); i++) { long bookmarkId = focusedBookmarkIds.get(i); items[i] = Bookmark.getBookmark(this, bookmarkId).getCustomName(); } builder.setItems( items, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Intent intent = new Intent(PtolemyMapActivity.this, EditBookmarkActivity.class); intent.putExtra(BookmarksActivity.BOOKMARK_ID, focusedBookmarkIds.get(item)); startActivityForResult(intent, ADD_EDIT_BOOKMARK_RESULT); } }); dialog = builder.create(); break; default: dialog = null; break; } return dialog; }
public void handleExtraButtonClick(View v) { if (focusedPlace == null) { return; } Intent intent; if (focusedBookmarkIds.isEmpty()) { intent = new Intent(this, AddBookmarkActivity.class); intent.putExtra(BookmarksActivity.PLACE_ID, focusedPlace.getId()); } else { if (focusedBookmarkIds.size() == 1) { intent = new Intent(this, EditBookmarkActivity.class); intent.putExtra(BookmarksActivity.BOOKMARK_ID, focusedBookmarkIds.get(0)); } else { Bookmark[] bookmarks = new Bookmark[focusedBookmarkIds.size()]; for (int i = 0; i < focusedBookmarkIds.size(); i++) { bookmarks[i] = Bookmark.getBookmark(this, focusedBookmarkIds.get(i)); } Bundle data = new Bundle(); data.putParcelableArray(BOOKMARKS, bookmarks); removeDialog(DIALOG_MULTIPLE_BOOKMARKS); showDialog(DIALOG_MULTIPLE_BOOKMARKS, data); return; } } startActivityForResult(intent, ADD_EDIT_BOOKMARK_RESULT); }