I have a question that is more about the user experience than a technical issue. As such, it may not belong here (let me know if it doesn't) but it's something that's bothering me.
I'm building an application to help with learning English which has a quiz section with multiple choice questions. Most of the applications like that (including my old applications developed for Android 2.x) have a layout of the screen that goes like:
Answer 1
Answer 2
Answer 3
Button "Check"
Button "Skip"
The user selects an answer and clicks the button to check it and go to the next question. If they don't want to answer the question, they press Skip. That layout is quite intuitive and easy to grasp.
Now, I would like to use the action bar for all the actions the user may take. My problem is that while having Next action is ok (with the icon of arrow pointing right), adding another action of Skip makes the action bar unclear. Is just my inability to come up with the right icon for skipping? Or is it a problem with the icons in the action bar not necessarily being easy to understand and use?
What do you think?
The ActionBar is not the place for such actions.
UI-wise, the hierarchy of of an app such as your should be (imo):
ActionBar with general actions (for example settings , share question...)
Question
Answers
Check and Skip
From top to bottom
I usually prefer to put buttons belonging to the content (such as the question) WITH the content. Then I find buttons that interact with the app as a whole to belong to the action bar. It can also be used if it interacts with multiple content items on single screen (more common on tablets
For example putting a login button in a login screen in the action bar would be kinda awkward..
Im no UI expert by any means though
Action Bar would be better for your situation.. try drawing your idea about the UI in a piece of paper, that really helps a lot about UI decisions
Related
It probably will be an opinion based answers rather than fixed ones, but I thoughts it wouldn't be bad to ask this question and get opinions from more experienced developers.
I am implementing in my app recycler view, that each item in the recycler view should have some actions, for example
delete, reminders, spinners, change icons and some others.
Currently I implemented the delete and change icon logic with both swipe action, and contextual action mode(on click the app bar changed to "new" app bar with delete button)
I thought to continue to implement all the other actions, like reminders and spinners in the item itself but I don't know if it's a good idea.
After some research I have several approaches in my mind:
throw all the actions right in the item view itself, which mean the user see right away all the possible actions.
use popup menu(three dots on the item, and open little menu with actions)
expand the contextual action mode that will include all actions
Maybe even completely different approach and put all the actions inside the item detail screen
What do you think is a better approach?
For what it's worth, the Material Design specs (scroll down to List Controls, I can't get a link to it HOW IRONIC) recommend a primary and (optional) secondary action, with possible left and right swipe gestures (which are usually understood to be "get rid of this item" in some way, like archive and delete)
Personally I think that's a good way to go (and you don't need to follow MD but it's a good base set of principles, especially if you're not a designer or UX person yourself) - it avoids clutter, and makes it clearer to users what their main options are.
You can implement tap behaviour on the list item to bring up a dialog (fullscreen or otherwise) where you have room to add lots of other options, labels to explain them, etc. You're not limited to the size of a list item, and you can easily add to it in future if you need to, instead of being committed to trying to fit everything into a list item.
Plus there's accessibility to think about - list items are small, you don't get much space (especially on smaller devices, where the user has large fonts enabled) so where are you gonna put all that stuff? Moving some to a contextual action mode works, but there's not much space there either, and the user has to realise they need to look up there. Will it work well for blind users relying on linear navigation?
Basically you can avoid a lot of these troubles by following established patterns, where other people have done the work to make it all "just work". My own personal experience has been trying to do things in a different way, and eventually coming back to the "recommended" way and wishing I'd done that to begin with!
I am not the best at android programming so please correct any errors I make.
According to this developer.android.com.
Android view is:
This class represents the basic building block for user interface
components. A View occupies a rectangular area on the screen and is
responsible for drawing and event handling. View is the base class for
widgets, which are used to create interactive UI components (buttons,
text fields, etc.).
However, I have not found an article about how to get a full view. I mean as in an entire screen as a view. The image I used below is to show what I want to include in that view. I want to include everything on screen. Everything On that Screen. (I can't repeat enough). It includes the chat heads, background, and menu bar. Everything that is on screen.
I can't figure out how to get a view like that from a service or from an activity. Any help is appreciated. I don't have exact code because I don't know how to do this.
Edit:
I know that I am very bad at explaining, so if you are confused, I am going to explain what I want to do with my view.
So basically, I want to make a screen tapper that taps for you so you can king of "cheat" games like cookie clicker. Therefore I need a view that contains the entire screen so then I can fake "touches" on the screen.
Hope this cleared any confusion
So you have a few things to deal with. Generally, the menu bar (and possibly soft-key buttons on the bottom) will remain visible. However, you can hide the menu bar:
hide the top menu bar in my android device & Tablet
You may want gestures to allow users to see it. Or, since it appears you are building a game, you just leave it hidden until they hit "home" or "back" or "exit" or whatever.
The "chat heads" are a horrible idea, but some developers think they are awesome. You can see more about that here:
Creating a system overlay window (always on top)
You might find something like this will work (but if new notifications pop-up, it may not help):
http://goobbe.com/questions/1390940/how-to-close-cancel-dismiss-a-system-dialog-programmatically-android
I did quite a lot of research, but couldn't find an answer for this one. The main quote I am starting from, is from the official android developer site:
"If you believe that more than four of your menu items can be justified as action items[...]"
This indicates me, I can safely use 4 menu buttons. At the moment, I am using 3 menu buttons on my main screen, but by popular demand, I am refactoring the mentioned main screen, which causes the need of exactly 4 menu item buttons.
My question is: are 4 standard size, only image buttons are guaranteed to be shown at ALL times, on EVERY device? So the top of the screen would look something like this in ALL cases:
_____________________________
|[I] ASD [1] [2] [3] [4]|
-----------------------------
Where [I] is the App icon, "ASD" is the label of the Activity(which is exactly 3 letters), [1], [2], [3], [4] are the menubuttons, each of them is a simple image.
Thanks in advance, cheers.
This indicates me, I can safely use 4 menu buttons
I think you are reading too much into that sentence, wherever you got it from.
are 4 standard size, only image buttons are guaranteed to be shown at ALL times, on EVERY device?
No.
First, device manufacturers can tinker with Android and may affect the behavior of the action bar on their devices. Now, the odds are that they will leave this alone, but "odds are" != "guaranteed". Even if the number of action bar items were mandated as part of compatibility testing (and AFAIK it is not), there are device manufacturers exempt from such testing because they do not license the Play Store or other Google commercial apps.
Second, on a -small screen device, four buttons might well be too many. Two might be too many, in portrait at least. I have not experimented with either ActionBarSherlock or the native API Level 11+ action bar on a -small device recently and so do not know how many action bar items it supports.
Moreover, any action bar items that do not fit into the action bar will go into the overflow (triggered via the MENU button on devices that have them or a "..." affordance in the action bar for those that don't), so the user can still access those things even if the icons are not visible for one reason or another.
Please don't delete it because its a duplicate. I am an android developer with little experience. I have an app with 2 screens. The first has a bunch of options in a TableLayout each selected using a RadioButton.
What I want to do is, when I select one option and click a Button which appears below, the View should switch to the next screen showing some related data and when a Button is clicked I want it to come back to the same screen but then the rest of the options should be available to me so as to repeat the same process with another one of the options selected.
In short I want to be able to maintain the state of the first screen. I can't seem to be able to decide between using ViewSwitcher, ViewFlipper, or multiple Activities or using a single Activity which is what I am doing right now. But as my app gets bigger its very difficult to handle it. Please suggest the best way to do this. I am confused and desperately in need of help because my job depends on it. Thanks in advance
Use 2 activities. Launch the 2nd activity when the user clicks the button. When the user clicks the "back" button (or some other button you offer him) the 2nd activity finishes and the first activity (which was underneath it) is shown.
Note: You've not given us much information, so I can't guarantee that this is the best solution. From what you've said this is the solution I would recommend though. As they say in advertising "Your mileage may vary" ;-)
I want to create a custom OptionsMenu in my application. The default OptionsMenu display only three items in one row. Now i want to display five to six items having only icons. Also i want to change the background color of the OptionsMenu but not getting the appropriate way of doing this. If it is possible then please let me know about it.
Short answer
As an user it bothers me when the application changes my android's widgets. I wouldn't recommend changing that and android doesn't provide a way to do it.
Long answer
Even though Android doesn't provide a way to customize that you can always handle the key event and show a view from your own. Similar discussion in stackoverflow.