Take the 2-minute tour ×
User Experience Stack Exchange is a question and answer site for user experience researchers and experts. It's 100% free, no registration required.

For a user input field in an Android application I am developing, I need the user to be able to input a number representing a distance, whose magnitude ranges from 0 to normally ~150 (but can be higher). I have been using a simple text entry field with data verification, but have noticed that it is by far the slowest portion of filling out the form, due to the manual closing of the keyboard. It's just not as effortless as the rest of the form.

Seek bars, have issues with precisely picking a single number (as well as the possibility of needing to enter an abnormally large number, which would require increasing the sensitivity even more).

+/- buttons similar to a time/date picker have no issues with range, but take too long to reach extreme values.

Unfortunately, short of these, I am having issues picking a best option, as all have significant drawbacks.

Any help in picking what would be best practice would be greatly appreciated. I just want the user to have the best experience in quickly and precisely picking from a large range of numbers.

share|improve this question

3 Answers 3

up vote 4 down vote accepted

You can use a seek bar backed by +/- buttons. The bar can be used for selecting the rough magnitude of the number and the buttons for fine-tuning. Also, if you provide a live textual indication of the current value of of the sidebar, you increase the user's chances of getting very close to the real number.

mockup

download bmml source – Wireframes created with Balsamiq Mockups

share|improve this answer
    
Perfect! This is exactly what I needed, very elegant. Now I feel bad for not thinking of it before...Thanks! –  avoyles Jul 11 '12 at 14:33

In such a case you have to have a combination of Seek bar and a text input. So when the seek bar changes the text input dynamically changes the text and visa verse.

I understand that you problem here is that the number can go till infinite and that cannot be achieved in Seekbar, in such a case, please try to reduce user confusion just give a text input. Only other option is to give predefined range.

Like less than 100. 100 to 200, ....

That helps when we take input for price but am not sure how you are going to use the data in your application.

share|improve this answer

For these situations a per digit spinner control would be a very good choice. With just a few interactions it lest you input a large range of numbers.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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