We are creating an android app that will be used to survey truck drivers and gather some traffic information. One of the questions is "What is the amount of time that you spend driving, sleeping or stopped". The user will have to answer, in increments of one hour, how he shares his time within those activities. We will get that information and send to the server. Here is a visual representation of the data entered by the user according to his answers.

enter image description here

The user must account for the entire 24 hour period and he can't mark more than 1 activity at the same time.

What would be the best way, to have the user enter this data in the android app?

  • Is it truly just three options, or can there be more?
    – JOG
    Commented Sep 13, 2013 at 14:45

5 Answers 5


The less you ask to the user, the better!

And in your case, it seems that you can deduce a lot of information.

•The GPS can tell you if it is moving or not and you can deduce if he is resting or sleeping according to the time of the day.

So you can use a suggestion principle. Here is a quick shot

enter image description here

Full view here


If you want them to enter in something for every single hour, I'd suggest using that as your point of progression. Start at hour zero and get them to allocate X number of hours to a task. Once they submit that, it moves to the next open hour and does the same until all 25 slots are filled. Ideally, this means they'd be able to fill out part of their day, perform the next block of activity, and update it from where they left off.

To the user it would look like - Hour : Activity: Duration


  • Hour 0: Sleeping: 7 hours
  • Hour 7: Driving: 1 hour
  • Hour 8: Stopped: 2 hours

and so on.


As a phone screen is too small for the diagram of an entire day, I suggest splitting it up in smaller parts.

The app could also keep track of empty slots, and remind the driver to fill in what she has been doing as soon as there is a gap within a certain time range, that you decide. It could remind for example three times a day, or each night at 8 pm.

Please enter your activities between 10 and 11 AM yesterday.


What have you been doing since 7 AM this morning?


download bmml source – Wireframes created with Balsamiq Mockups


You should use DetectedActivity to determine the type and duration of activity. (e.g. driving, still)

Then ask user to remedy the estimated activity type and duration if necessary.

This delights user rather than bugs user.


This problem sort of reminds me the system of my FitBit Force (activity tracker). Basically this product track all my movements, so it knows when I'm walking and track my steps as well as when I'm going up stairs or doing more activity (running, etc).

Maybe one idea can be to use GPS of the mobile to detect: when the user is driving (user is moving with some speed) and to detect when the user is having a break (user is not moving).

And for sleep, the user just can press a button to enter in a "sleep mode". When the user is awake again, just press again to leave the sleep mode and start tracking movement.

This is how this activity tracker works basically, and I think it can work perfectly in your case.

With all that data you can have a dashboard with all the times plus distance, even speed, places where the user took a break... etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.