This question might seem irrelevant but I really need help. I need to implement those floating animations that explain actions that a user can take in a particular activity. They are usually shown when an app is launched for the first time and the user can dismiss them to continue interacting with the app. I have provided 2 pictures showing what I am trying to achieve. I have searched all over the internet but what I keep getting are just gestures.shows user that they can scroll left or right!shows the user where notifications are ]1
You can do the whole stuff manually. Or use a prebuilt library called ShowcaseView.
You'll find details, code and guide here http://www.xda-developers.com/android/create-holo-themed-demo-overlays-with-showcaseview/
Related
In my UWP-App I want to create an app internal contactbook page. I can select a contact and return the selected contact back to the page where I opened the contactbook.
In Android where I come from there is a function called "startActivityForResult" which opens an activity gets the return value when finished.
I want to create the same behaviour.
I did this with Frame.Navigate(typeof(ContactBook)) and then when the contact is selected I navigate back with Frame.Navigate(typeof(PreviousPage), selectedContact)
The method Frame.GoBack() is useless in this case because I can't pass a parameter.
How can I solve this problem?
I'm not 100% familiar with android and "startActivityForResult" but are you looking to navigate the entire frame away? There isn't any equivalent in UWP apps, nor is there even really one for WPF's showDialog(), which is probably what you're looking for.
You only have a few options and none of them are really "amazing" per-say.
You can do what you've done above, which is navigate away to the page that has all the contacts, then navigate to a new page but depending on how your app is layed out you might be losing data on the page (since it's a new instance and not a back in the stack so you can't really cache it). You also can't navigate to an instance of a page either, it's only to a new page or through the stack from back / forward. If you use GoBack though and cache the page (using the "required" mode for caching) then you could do some dirty lookup of a stored value in a static class (I know, ugly and not MVVM) or setting a local settings value and reading that in the OnNavigatedTo() method for the page before.
If you don't NEED to use frame movement, you can use a flyout or a custom flyout user control to build a popup of sorts that will display the XAML for the page instead of a page frame. This will have a few difficulties with resizing (so more so for W10 than W10M) and such but you'll be able to not transition out of the frame itself. Then you can see the value of the selected and then on the submit event, you can just work with the page since it's already open.
If need be you could build a custom usercontrol for the flyout and put some custom dependency properties that can be bound for MVVM, it really all depends on what and how you're doing it.
So short answer, there is no fast way of achieveing what you're looking for and that does seem like an issue with the API. I would make the suggestion on the API's uservoice (https://wpdev.uservoice.com/forums/110705-universal-windows-platform) and try to get it upvoted!
There isn't any equivalent in UWP apps, nor is there even really one for WPF's showDialog(), which is probably what you're looking for.
#Daniel, no, there is a equivalent in UWP apps. Please refer to Launch an app for results, you can follow the tutorial in that doc to achieve this.
To do this, you will need to create two apps. One is the app which will launch the result app (let say "main app"), the other app here should be the contact-book app. The contact-book app will behavior like a modal window, and the main app will wait for the result of the contact-book app.
But in an UWP app, you can use ContactStore class to access the database that contains contacts.
So, you will need to reconsider if that is necessary to create a contact app by yourself.
Edit:
I may misunderstand your question, you just want your page to behavior like contact-book, not want to create a contact-book by yourself. But anyway, it's the same, you can create another app to hold your page which you want to launch from your main app.
I am re-pharsing my question to avoid negative points. I am aware of web view, dialogs, popups, notifications. if you have some other ideas please let me know.
I am working on a very big android application, in which I have to add some popup kind of thing, which tells the user what we have updated for this version. Kind of like, what bugs are fixed or whats new things are added.
The window have to be populated once or twice and it have to have user interactions, like click on the link, or contact us, or click on the image to go to some page inside the app. Please let me know any good ideas.
You definitively should give a look to the AlertDialog class
http://developer.android.com/reference/android/app/AlertDialog.html
This is basically the class used to display a message and get the ok/cancel/anything answer from the user. But it's customizable and you can make more or less what you want according to which button is pressed by the user.
I would like to display a message to the user for some asynchronous event. For example for an alarm expiration. I would like to display a popup or dialog that is displayed over any activity is the foreground at the moment (and this can be some other application activity) leaving the current activity in the backgound.
Is there a way to do so in Android?
First off, you will be told that this is a bad thing to do, that it is against the Android way of doing things. Users do not like this. And that the Notification area is much better way to do this.
That said... there are ways to accomplish this...
A Toast will display no matter which activity is on the screen. So you could set up a background thread (or better a Service) that will display your information in a Toast. This might be good enough for you.
You may find it useful looking at some Toast source code here.
Also here is a nice page on how to create a custom Toast layout by replacing the default View with one of your own. (I have not done this, but it looks quite interesting):
Custom Toast Alert on androidexample.com
The alternative is much more difficult, and is to display a System Overlay window. Unfortunately you have to do quite a lot of work to get these set up properly.
Here are a few related questions that I used to get it working:
Creating a system overlay window (always on top)
System overlay android 4.0
How to create a system overlay in Android which allows interaction with the windows below it?
Each of these has links to many others - there are loads of System Overlay questions on here.
But things to remember:
In the old days, you could put a system overlay on top, and send
touches through to the activity below. This is no longer possible,
and so a lot of the answers are now out of date.
You may need to
play around with the flags in the provided examples to get exactly
the effect you are aiming for. Not all the examples use the same
flags, so there are some subtle differences in how each solution
works.
Then again, I also believe that the Notification area is a much better UI pattern to use, so I do recommend you try that first. It is easier to do, and most of us expect that type of behaviour rather than a pop-up.
The problem with a pop-up, is that it might interrupt a movie I'm watching. Or a game I'm playing.
Yes, i had created two dialog for income event for background and foreground
I'm trying to build an application that would run at the same time as another one, on top of it (hiding only partially the original app), that would display useful information for the user of the main app.
But it seems that 2 activities cannot run at the same time, overlap, etc...
For argument sake, lets say the app would be displaying date & time in a corner of the screen, while playing a specific game.
Anyone got any doc or sample code on how to achieve such a result ?
I'm also interested in how to know which app is currently running in order to decide in my app-on-top to be visible or invisible.
Any help appreciated :)
Thx
Looks like you are in need of Fragments: Fragments
The Android system is designed to be user friendly, and two activities at same time is not, so only one activity is on foreground at once. if you need the other to be running in background make it a Service, if you want to show some data and get back first one use a Dialog, finally if you want both you can either put them in one activity or use Fragments as #Tooroop suggsets.
Its propably too late ... but for others with the same problem:
check out how-to-draw-on-top-of-other-applications
and maybe also this if your app need to be on top on fullscreen apps
I would like to put fairly extensive help information within my app - both "how to use" and explanation of what one is seeing.
The app (map oriented) has a row of buttons at the bottom, and I was considering adding a help button.
Context sensitive help is mostly not appropriate, btw.
What are common and best practices for this?
Thanks
I wouldn't suggest using a help button, once the user knows how to use your app it will be useless, and will only takes some space.
What I do (but it's maybe not the best practice) is to show a popup on the first use. Within the popup I put some basic help and a link to my website which fully explains how my app works (with some screenshots to make it user-friendly). I also put a "Help" button in the activity menu which redirects to my website again.
What I can suggest is to explore by yourself how other android apps shows the help information, and reuse or adapt the one you prefer (this is what I've done).
I have put help into a menu item as I expect new users to click the menu button anyway (my app, Zwitscher also has a button bar at the bottom).
Clicking the menu item then starts an Activity that simply shows a table view that explains the various buttons in the system and contains a link to more information online.
See https://github.com/pilhuhn/ZwitscherA/blob/master/src/de/bsd/zwitscher/HelpActivity.java and
https://github.com/pilhuhn/ZwitscherA/blob/master/res/layout/help.xml
Another option I've seen sometimes is including a help option in the preferences/configuration screen.
Usually it starts a new activity with a sequence of steps to make the user understand everything.