I wanted to create an options menu as seen in this image: http://i.imgur.com/Mf0PSy8.png
But the problem is, the only way that I found to create this type of menu is by calling onCreateContextMenu method and I don't want it to only appear when user long-press an item.
I want it, for example, to show up when user click a specific button linked to a function.
How can I do it?
You can explicitly show the option/context menu programmatically by calling Activity.openOptionsMenu() / Activity.openContextMenu(View view).
You're looking for a Dialog Fragment. These work just like a Fragment class but can be displayed as a dialog. You can find more on using a Dialog Fragment in this tutorial to do whatever you would like
Related
What I want to do is to show the dialog message but make it still possible to click on the items behind. On any click, the dialog would dismiss
Right now I need to click once to dismiss the dialog and a second time to click on a field.
It is something possible ? Or is there an alternative to using Dialogs?
Edit: Solution found by adding Layout Flags to the window.
In kotlin:
dialog.window?.setLayout(ConstraintLayout.LayoutParams.FLAG_NOT_FOCUSABLE, ConstraintLayout.LayoutParams.FLAG_NOT_FOCUSABLE)
By using Dialog you cannot achieve what you are looking for. instead of using Dialog USE FRAGMENT.
The examples are given in official documentation here.
You Can define a full layout in the background of the dialog and set onClick listener to that layout
What I want to do, is to create a menu with checkeable items like this:
But just after clicking a button or icon in my main activity, so I can have different menus like this depending on the button which I click. I don't know if this is the right component or what I have to do.
I would just need a sample with a button and after clicking it, it creates this kind of menu with some options.
Thanks in advance.
There's several ways to accomplish this. One way would be to have a layout that you want to use for it and use a PopupWindow. This will create this type of look. You will just create the contentView to go inside it.
Another way, especially if you need more functionality, would be to create a separate Activity with a Dialog theme and put a ListView or whatever you need. But for what you have shown, a PopupWindow should work nicely for you
I want is a go from a menu that has a list of objects, if you select an option menu another list should appear.
The examples I found seemed to be for listview or webview.
There another way to make a selection from menu options?
So if I'm understanding your right, you want to launch a Context Menu from an Options Menu. You should not do this. From the android documentation:
A context menu is conceptually similar to the menu displayed when the user performs a "right-click" on a PC. You should use a context menu to provide the user access to actions that pertain to a specific item in the user interface. On Android, a context menu is displayed when the user performs a "long press" (press and hold) on an item.
You'd never do a "long press" on an Options Menu item. People just aren't used to doing that.
Try launching another activity instead or using a dialog.
If you have a fixed list of options in mind you might be looking for submenus, which are explained here: http://developer.android.com/guide/topics/ui/menus.html
If you are looking to dynamically build a list of options with an adapter you might find AlertDialog.Builder useful along with its setAdapter method.
This seems like a pretty simple question, but I'm not sure if it's even possible. Is it possible to allow the MENU button to still bring up the option's menu when a dialog is showing on top? I want to do this because I want to give the user some more options while a dialog is opened.
I don't think that is possible.
Although the docs say that you should be able to do this.
A dialog is always created and displayed as a part of an Activity. You should normally create dialogs from within your Activity's onCreateDialog(int) callback method. When you use this callback, the Android system automatically manages the state of each dialog and hooks them to the Activity, effectively making it the "owner" of each dialog. As such, each dialog inherits certain properties from the Activity. For example, when a dialog is open, the Menu key reveals the options menu defined for the Activity and the volume keys modify the audio stream used by the Activity.
http://developer.android.com/guide/topics/ui/dialogs.html
I've read through all of the android documentation that I can find but I'm still not clear on whether a button can be added to an application for an android device somewhere outside of an options/context menu. It seems like all of the menu buttons are only accessible either from a tab bar at the bottom or the menu button on the device. Is this correct?
I'm not sure I understand what you mean, but you can use a Button widget in an activity anywhere you want, just like any other widget type. See:
http://developer.android.com/reference/android/widget/Button.html