Abstract:
A method for selecting an entry from a list of entries on an electronic device is described. The method includes a displaying at least a portion of a list of entries along with a plurality of distinct, non-overlapping groups of text characters, the groups displayed in a geometric pattern. Additional retrievable data can be associated with each entry and retrieved when that entry is selected. A group selection event selects a particular group of characters. A matching operation compares text characters of the selected group with those of each entry in the list. A smaller, modified list is created comprising entries comprising at least one text character of the selected group. At least a portion of the modified list is displayed, highlighting text characters matching text characters of the selected group. Group selection can result from user operation of geometrically associated keys, a touch sensitive display, or other directional input device.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application is a continuation of U.S. application Ser. No. 11/965,098 which claims the benefit of U.S. Provisional Application Ser. No. 60/921,690, filed Apr. 4, 2007, and U.S. Provisional Application No. 60/952,859, filed Jul. 30, 2007. The provisional applications are incorporated in their entirety herein. 
     
    
     COPYRIGHT &amp; TRADEMARK NOTICES 
       [0002]    A portion of the disclosure of this patent document may contain material, which is subject to copyright protection. Certain marks referenced herein may be common law or registered trademarks of the applicant, the assignee or third parties affiliated or unaffiliated with the applicant or the assignee. Use of these marks is for providing an enabling disclosure by way of example and shall not be construed to exclusively limit the scope of the disclosed subject matter to material associated with such marks. 
       BACKGROUND OF THE INVENTION 
       [0003]    1. Field of Art 
         [0004]    The disclosure generally relates to the field of computing device user interfaces and more specifically, to enabling a user to select an entry from a list of entries. 
         [0005]    2. Description of the Related Art 
         [0006]    Portable electronic devices, also referred to as mobile devices, often have a small screen with limited viewing area and a small keyboard with a limited number of keys. This makes it difficult to perform quick searches and selections in lists such as an address book or song list containing more than a few items. For example, suppose that a user needs to find a name in an address book on a mobile phone to make a call. The phone can present the user with a list of names that the user scrolls through with up and down keys until the desired name is reached. In some cases, keys may be available to jump up or down by several names at once. Still, if the list contains more than a few screens of entries, scrolling through it to reach a desired name becomes impractical. 
         [0007]    If the phone has a full keyboard, the user may try to enter the name with the keyboard. However, the keyboard on a mobile device is small and likely to be slow and difficult to use. Some devices have design where the keyboard is normally hidden and has to be slid out or opened to be used. This results in additional time to access the keyboard. In some devices, a virtual keyboard can also be displayed on a touch screen. This keyboard is also likely to be small and difficult to use. Additionally, a stylus may be needed to use the virtual keyboard, resulting in time needed to take out and to put back the stylus. 
         [0008]    It is possible to use a standard phone numeric keypad to search for and select a name. A numeric key is associated with certain letters and a user accesses these letters by pressing the key repeatedly. For example, the “4” key is usually associated with the letters “G”, “H”, and “I,” and the user would access “G” by pressing the key once, “H” by pressing the key twice, and “I” by pressing the key three times. This is referred to as the multi-tap method of letter selection. 
         [0009]    One method of selecting a name from a list is Multi-Tap First, where a user selects the first letter of the name using the multi-tap method. Once the first letter is selected, the cursor is positioned to the first entry starting with this letter, and the user then scrolls down to the desired entry. Another method is Multi-Tap Match, where a user can type the first several letters of a name using the multi-tap method. As the user types each new letter, the cursor moves to the first name that matches the typed prefix. At some point, the user can choose to enter a scrolling mode where the user then scrolls down to the desired name. However, these methods based on multi-tap require many button presses and require the user to differentiate between eight or more keys. 
         [0010]    What is needed is an efficient and easy to use method for selecting an entry from a list of entries on an electronic device. 
       SUMMARY OF THE INVENTION 
       [0011]    Features and advantages of the invention will be set forth in the description which follows, and in part will be apparent from the description, or may be learned by practice of the invention. The objectives and other advantages of the invention will be realized and attained by the structure particularly pointed out in the written description and claims hereof as well as the appended drawings. 
         [0012]    Disclosed is a system (and/or method) for selecting an entry from a list of entries on an electronic device is disclosed. The system is configured to display a plurality of banks to a user and to receive a bank selection event from the user for selecting a bank containing a set of characters. The user creates a bank selection event through an input device such as a navigation device or touch screen. The set of characters is appended to a prefix that is used to determine a current result list containing entries that match the prefix. The list of entries is reduced to the current result list and displayed to the user with the portions of the entries matching the prefix highlighted. After the list of entries is reduced to a desired size, the user enters a scrolling mode where the user scrolls through the list of entries and selects an entry. A predetermined action is then performed on the selected entry. 
         [0013]    The disclosed system provides several advantages. A user can select an entry from a list of entries easily and efficiently. Entries can be selected by providing a relatively small number user inputs to an input device that fits in a small area and has a simple user interface. The user is not required to look at the display of the device when selecting an entry and can operate the device using one hand. 
         [0014]    These and other embodiments will also become readily apparent to those skilled in the art from the following detailed description of the embodiments having reference to the attached figures, the invention not being limited to any particular embodiment disclosed. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0015]    The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction of the figures is below. 
           [0016]      FIG. 1  illustrates a system for enabling a user to select an entry from a list of entries on an electronic device. 
           [0017]      FIG. 2  illustrates a display screen on an electronic device for selecting an entry from a list. 
           [0018]      FIG. 3  illustrates the display screen of  FIG. 2  after a bank selection event. 
           [0019]      FIG. 4  illustrates the display screen of  FIG. 3  after another bank selection. 
           [0020]      FIG. 5  illustrates the display screen of  FIG. 4  after another bank selection event. 
           [0021]      FIG. 6  illustrates the display screen of  FIG. 5  after another bank selection event. 
           [0022]      FIG. 7  illustrates the prefix that is matched to create the current result list displayed in  FIG. 5 . 
           [0023]      FIG. 8  illustrates a portion of a display screen with a current result list that can be reduced further through multiple word selection. 
           [0024]      FIG. 9  illustrates the display screen of  FIG. 4  after a scrolling mode entry event. 
           [0025]      FIG. 10  is a flowchart showing the steps for selecting an entry from a list, in one embodiment. 
           [0026]      FIG. 11  illustrates a mobile device with a navigation panel. 
           [0027]      FIG. 12  illustrates different navigation panels from various mobile devices. 
           [0028]      FIG. 13  illustrates a mapping from a range of trackball inputs to discrete directional events. 
           [0029]      FIG. 14  illustrates a configuration with six banks placed around a list display area. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       [0030]    Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures (FIGS.). It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein. 
         [0031]      FIG. 1  illustrates a system  100  for enabling a user to select an entry from a list of entries on an electronic device. Examples of electronic devices include computers, cable television boxes, global positioning system (GPS) devices, mobile phones, portable media players, and handheld computers. The system is comprised of various modules which can run on the electronic device. The electronic device includes a processor, memory, storage, and other hardware and software to run the modules of the system  100 . 
         [0032]    The list from which a user selects an entry can be, for example, a list of names of persons, a list of song names, a list of file names, or a list of words. The user generally selects an entry for the purpose of performing some action relating to that entry. For example, the user may select a name from a list to call a phone number associated with the name or to retrieve an address associated with the name. In another example, the user may select a word from a list containing several commonly used words to insert that word into an e-mail the user is composing. 
         [0033]    Each list entry is a string of characters, where the characters can be letters from any alphabetic system, numbers, or any other symbols. The characters can be encoded in various ways such as ASCII or Unicode. In the description that follows, the list in Appendix A is used to illustrate the selection of an entry from a list and is referred to as the Example List. The Example List contains names of persons, where the names are comprised mostly of letters. In the description that follows, any reference to names composed of letters is understood to equally apply to general strings of characters. 
         [0034]    List data is provided by the data entry module  114 . List data includes the character string entries described above and data associated with each entry. For example, an entry can be the name of a person and the associated data can be the person&#39;s phone number and address. The associated data is used to perform an action when the entry is selected, such as calling the phone number associated with a selected name. List data can be received from a variety of sources. The data may reside on local storage of the electronic device that is loaded into memory by the data entry module. The data may be downloaded from the Internet or another device. The data can be created from Caller ID information of received phone calls. The data can also be manually entered by a user, for example through a keyboard on the electronic device. 
         [0035]    The user interface module  102  provides a user interface for a user to select an entry from a list. The user interface module sends graphics commands to a display  112  that provides visual information to the user during the entry selection process. An example of a display is a liquid crystal display (LCD) screen on a electronic device. 
         [0036]    The user interface module accepts input commands from a user input device  118 . The user input device can be can be a touchpad, joystick, a 4-way or 5-way navigation control, a touch screen, or any of a variety of input methods provided by the electronic device. The device input commands are processed by a user input module  116  before being sent to the user interface module. The user input module produces events understood by the user interface module based on the device input commands. Some of the events include bank selection events, a scrolling mode entry event, cursor up and down events, an entry selection event, a backspace event, and a reset event. These events are described further below. 
         [0037]    Once a user has selected an entry via the user interface module, the entry is sent to the entry action module  120 . The entry action module performs an appropriate action on the selected entry, possibly using data associated with the entry. For example, as mentioned above, the entry action module may dial a phone number associated with a selected entry. 
       Entry Selection User Interface 
       [0038]      FIG. 2  illustrates a portion of a display screen  112  of an electronic device. The contents of the display screen are controlled by graphics commands from the user interface module  102 . The list display region  204  contains entries  206  from the current result list  104 . The current result list contains the list entries that are currently available for selection. Initially, the user interface module receives the complete list from the data entry module  114  and stores this list as the current result list. When the user interface module receives bank selection events, described below, various entries are ruled out as candidates for selection and are removed from the current result list, shortening the current result list. When the entry selection process is restarted, the current result list  104  is reset to the complete list. 
         [0039]    The list display region  204  can display the entries  206  of the current result list  104  in any order desired. The list display region may not be able to display all of the entries of the current result list. Though the current result list in  FIG. 2  contains 96 entries (see Appendix A), the list display region  204  shows only ten entries due to space constraints. A variety of options are possible for choosing which entries to show in the list display region  204 . In one embodiment, the list is sorted as desired and the first ten sorted entries are chosen to be displayed. 
         [0040]    The user interface for entry selection occurs in two modes: bank selection mode and scrolling mode. At the start of the entry selection process, the user interface is in bank selection mode. The bank selection mode module  108  handles the user interface in this mode. The bank selection module  108  receives events from the user input module  116  (passed through the user interface module  102 ) that can cause the number of entries in the current result list  104  to be reduced. When current result list has been reduced to a manageable number of entries, such as when all or most of the current result list can fit on a single screen  204 , the user can provide input that causes a scrolling mode entry event to be sent to the user interface module. 
         [0041]    When a scrolling mode entry event is received, the user interface enters scrolling mode, controlled by the scrolling mode module  110 . In scrolling mode, the user can navigate through the list display region  204  and select a particular entry by providing input that causes certain events to be sent to the scrolling mode module  110  (through the user interface module  102 ). Further description of bank selection mode and scrolling mode is given below. 
         [0042]    The list display region  204  is surrounded by letter banks  202 . These banks contain groups of characters that can appear in the list entries. In the example display shown in  FIG. 2 , the banks include all the letter from the English alphabet. The banks do not need to include all symbols in the list and a single symbol in a bank can map to multiple symbols in the list. For example, spaces and periods appear in the list entries but not in the banks. Also, for example, the symbol E in the upper bank maps to both uppercase E and lowercase e in the list entries. 
         [0043]    In  FIG. 2 , the example configuration illustrates four banks displayed at the four edges of the list display area  204 . The QWERTYUIOP bank is referred to as the upper bank, the ASDFG bank is referred to as the left bank, the HJKL bank is referred to as the right bank, and the ZXCVBNM bank is referred to as the lower bank. These banks are selected when bank selection events are received by the bank selection mode module  108 . A bank selection event is also referred to as a directional event because a bank can be specified by its location relative to the list display area  204  (e.g., upper bank, left bank). The user of directional banks enables a user to produce bank selection events by entering simple inputs on an electronic device. There are four banks as opposed to twenty six letters, making bank selection simpler than individual letter selection with a keyboard. Input mechanisms are further described in the user input module  116  description below. 
         [0044]    Before a first bank is selected, the current result list  104  displayed in the list display area  204  is the complete list provided by the data entry module  114 . The first received bank selection event narrows the current result list to those entries containing one of the letters in the selected bank at certain predefined positions. These positions can be, for example, the start of the first, middle, or last name of the entry. In one embodiment, there is no position restriction, so that one of the letters from the selected bank can appear anywhere in the entry, such as in the middle of a last name. 
         [0045]    In  FIG. 2  and the figures that follow, the first selected bank must include a letter that is the first letter of the first, middle, or last name of a particular entry for that entry to remain in the current result list. For example, if the right bank is selected, the current result list is narrowed down to those items with first, middle, or last names beginning with H, J, K, or L. As another example, “Agatha Christie” will remain in the current result list after the first bank selection if the left bank (containing ‘A’) or the lower bank (containing ‘C’) is chosen. 
         [0046]    Some letters in the banks  202  may be highlighted  214 . A highlighted letter may be shown as bolder or a different color than non-highlighted letters. In one embodiment, highlighted letters are displayed normally while non-highlighted letters are “grayed out.” A symbol is highlighted if there are any list items in the current candidate list that would match that particular letter if the bank containing the letter were selected. In  FIG. 2 , all letters are highlighted except for “Q” and “X.” This is because all other letters in the banks correspond to the first letter of at least one first, middle, or last name from the Example List. The highlighted letters show the user which letters from a bank can be possible matches if that bank is selected next. 
         [0047]    The display area  112  also includes on-screen buttons  210  and  212  that provide additional functionality to users. These buttons can be selected by user inputs causing various events to be sent from the user input module  116  to the user interface module  102 . The button  210  titled “Options” can open a menu enabling the user to set certain options for the display  112  such the highlighting colors or list sorting preferences. The user input module can send various configuration events to the user interface module. The back button  212  can undo the most recent event received, such as a bank selection event. The user input module can send an undo event to the user interface module. 
         [0048]    Suppose that the user wants to find someone in the Example List whose name (first, last, or middle) is “O&#39;Connor”. The user, when selecting a first bank, would select the upper bank since that contains ‘O’, the first letter of the name. After receiving the first bank selection event for the upper bank, the display illustrated in  FIG. 3  is shown to the user. The current result list  104  has been narrowed to those items that have first, middle, or last names starting with Q, W, E, R, T, Y, U, I, O, or P, since the upper bank was selected. Certain letters in the entries  206  have been highlighted  316  to show the matches with the first upper bank selection. In some cases, an entry may have multiple matches. For example, “E. B. White” matches twice because the first name starts with E and the last name starts with W, both from the upper bank. In such cases, both letters are highlighted. 
         [0049]    After the first bank selection, the user interface can remain in bank selection mode or can enter scrolling mode. Assuming that the user chooses to remain in bank selection mode, the user again provides an input producing a bank selection event. For this second bank selection, the user is choosing a bank containing a letter following a previously matched letter in the entry the user wants to select. For example, to match “Alice Walker” in the second bank selection, the user would need to select the left bank, since it contains ‘A’, which would match the ‘a’ following the ‘W’ matched in the first bank selection. Symbols appearing in the list items but not in the banks are ignored. For example, for the item “E. B. White”, the next possible matching symbol after ‘E’ is ‘B’, not the period. 
         [0050]    The bank letters that are highlighted  214  in  FIG. 3  are different than those highlighted  214  in  FIG. 2 . This is because the highlighted bank letters now correspond to possible matches in the position following the previously matched position. For example, ‘H’ matches the ‘h’ following the previously matched ‘W’ in ‘Edith Wharton’ and as a result ‘H’ is highlighted in the bank (&#39;H′ also has matches in other list items). 
         [0051]    The user searching for “O&#39;Connor” would select the lower bank containing ‘C’ for the second bank selection. This results in the display shown in  FIG. 4 . The current result list is narrowed further to those entries that match after the second bank selection. Matching list items must contain a letter from the first selected bank followed by a letter from the second selected bank. The highlighting in the display list area and highlighting in the banks illustrated in  FIG. 4  provide the user with similar indications to those described in  FIG. 3 . Subsequent bank selections operate similarly, causing the result list to be shortened and the highlighting of the banks and the current result list to change. 
         [0052]    The user may want to further narrow the result list by selecting another bank. To continue the search for “O&#39;Connor” the user would select the upper bank containing ‘O’ as the third bank selection. The result of this selection is illustrated in  FIG. 5 . The user would then select the bottom bank containing ‘N’. The result of this fourth selection is illustrated in  FIG. 6 . At this point, the current result list has been narrowed down to the single desired entry. In most cases, the user would choose to exit bank selection mode and enter scrolling mode before reaching the screen illustrated in  FIG. 6 . For example, the user may choose to enter scrolling mode after reaching the screen illustrated in  FIG. 4  (after two bank selections), since the current result list at that point contains only six names that the user can easily scroll through. 
         [0053]    In bank selection mode, the current result list  104  is narrowed through prefix matching. Each bank selection event results in the selected bank being appended to the prefix  106  that is matched with the entries of the current result list. A prefix matches an entry of the current result list if the banks in the prefix match adjacent letters in the entry (subject to restrictions on the position of the first matching letter described above). For example, after the third bank selection event, the prefix is three banks long and therefore must match three adjacent letters in an entry. Since each bank contains multiple letters, there are multiple letter sequences that will match a given prefix of banks. 
         [0054]      FIG. 7  illustrates the prefix  106  that is matched to create the current result list displayed in  FIG. 5 . As described above,  FIG. 5  is reached after selecting the left bank, the lower bank, and then the left bank again. The letters from these banks are shown in positions  1 ,  2 , and  3  of the prefix in  FIG. 7 . For an entry to match the prefix in  FIG. 7 , it must contain one letter from position  1  followed by one letter from position  2  followed by one letter from position  3 . All of the displayed entries in  FIG. 5  match this prefix. 
         [0055]    In the illustrated embodiment, the letters in the entries matching the prefix must be consecutive (excluding non-letter characters) but do not need to be contained in the same name within the entry. This is referred to as permitting multiple word selection. For example, in  FIG. 5 , “E. B. White” is part of the current result list because the consecutive letters ‘E’, ‘B’, and ‘W’ match the first three bank selections (i.e., the prefix). Even though the ‘E’ is from the first name, the ‘B’ is from the middle name, and the ‘W’ is from the last name, the match is not affected. By allowing multiple word selection, the user can continue to narrow down the current result list by bank selections even when the end of a word is reached. 
         [0056]    Another example where multiple word selection is useful is shown in  FIG. 8 , where the current result list after four bank selections includes several persons with the same first name. If multiple word selection were not permitted, the user could not further narrow the current result list through further bank selection events, and would instead need to enter scrolling mode to select an entry. 
         [0057]    Multiple word selection can also be permitted where the prefix has completely matched the (same) last names of several entries. After the last name is matched, the prefix matching wraps around to the first name. This wrapping may be useful, for example, if a sequence of bank selections have matched several persons with the same last name and the user wants to continue making bank selections to further reduce the current result list based on the first name. 
         [0058]    As mentioned above, the user can enter scrolling mode at any time with an input that sends a scrolling mode entry event to the user interface module. Usually, the user will do this when the current result list has been reduced to a few entries that can be easily navigated.  FIG. 9  illustrates a display  112  in scrolling mode entered after the bank selection resulting in  FIG. 4 . In scrolling mode, one of the entries in the current result list is highlighted with a cursor  902 . In one embodiment, the cursor is initially at the first entry when scrolling mode is entered. Alternatively, the cursor is initially placed in the middle of the current result list. 
         [0059]    The cursor  902  can be moved from an one item to an adjacent item through cursor up and cursor down events generated by user inputs. When the cursor has been moved to the desired entry, the user can create an entry selection event to select the entry and send the entry to the entry action module  120 . As described above, the entry action module carries out a desired action on the entry, such as dialing a phone number. If the display  112  is touch sensitive, the user can produce an entry selection event by directly touching the entry on the display instead of providing inputs to move the cursor up and down. In one embodiment, when the user interface enters scrolling mode with the current result list already narrowed to a single entry, that entry is automatically selected. 
         [0060]    When in scrolling mode, the current result list may contain more entries than can be displayed in the list display area  204 . The user can reach the undisplayed items by moving the cursor down beyond the bottom displayed entry to scroll the display area to the undisplayed entry. In one embodiment, the display  100  provides an indication to the user that there are more entries in the current result list than are shown in the list display area so that the user knows to scroll down to display all entries (if desired). The user may also be able to generate page up or page down events to move through a long list of entries more rapidly. 
         [0061]      FIG. 10  is a flowchart showing the steps for selecting an entry from a list, in one embodiment. The user interface module  102  displays  1002  the list from which the user is to choose an entry. The user interface is in bank selection mode. The user interface module receives  1004  an event generated by the user. If the event is a bank selection event, the selected bank is appended  1005  to the prefix  106 . A prefix match is then performed  1006  on the current result list entries. The current result list is reduced  1008  to those entries matching the prefix and this list is displayed  1010  to the user in the list display area  204 . The highlighting of the banks  202  and list entries  206  is updated  1012  based on the new prefix and current result list. As the user continues to generate bank selection events, the prefix becomes longer and matches fewer entries resulting in a shorter current result list. 
         [0062]    After making zero or more bank selections, the user generates a scrolling mode entry event. Upon entering scrolling mode, a cursor is displayed  1014  on an entry in the current result list. Scrolling events such as cursor up or cursor down are received  1016  from the user input module to move the cursor to a desired entry. An entry selection event is received  1018  when the user has reached the desired entry and wishes to select that entry. A predefined appropriate action is then performed  1020  on the desired entry by the entry action module  120 . 
       User Input 
       [0063]    As described above, the user provides input to the electronic device through a user input device  118 . Generally the user input device is part of the electronic device, such as a keypad or navigation panel on the electronic device. The user input device sends device input commands to the user input module  116 . The user input module interprets these input commands and creates events that can be understood by the user interface module  102 . The user input module then sends these events to the user interface module. 
         [0064]    One set of events are the bank selection events, also referred to as directional events because each bank is associated with a particular direction. In one embodiment, the directional events are created using a navigation panel commonly found on mobile devices.  FIG. 11  illustrates a mobile device with a navigation panel. The mobile device  1100  has a display  112 , a navigation panel  1108 , and a keypad  1110 . The navigation panel  1108  has four directional buttons  1102  that can be pressed to select banks. For example, a user presses button  1102 D to select the left bank in  FIG. 2 . 
         [0065]    Similar input devices capable of producing a directional input can be used. Several such input devices from various mobile devices are shown in  FIG. 12 . The input devices can also be trackballs or joysticks. The user can press buttons on the edges of a mobile device  1100  or apply pressure to the edges of the mobile device to generate bank selection events. If the display  112  is touch sensitive, the user can directly touch the displayed bank with a finger or stylus to select it. 
         [0066]    Various gestures made by a user can also be analyzed by the user input module  116  to determine an appropriate directional event to create. A user can make a stroke on a touchpad or touch sensitive screen, and the direction of the stroke can be determined. For example, a stroke to the right can select the right bank. Since gestures can be made rapidly by users, the bank selection events can be rapidly generated in this way. 
         [0067]    Navigation panel  1108  provides four buttons that produce discrete inputs that the user input module  116  translates into directional events. However, other devices such as a trackball may provide a horizontal magnitude of navigational motion, Δx, and a vertical magnitude of navigational motion, Δy. A negative Δx corresponds to a move left, a positive Δx corresponds to a move right, a negative Δy corresponds to a move downwards, and a positive Δy corresponds to a move upwards. These magnitudes can be converted into directional events by the user input module as follows:
       right: if |Δx|&gt;|Δy| and Δx&gt;0,   left: if |Δx|&gt;|Δy| and Δx≧0,   up: if |Δx|&lt;|Δy| and Δx&gt;0,   down: if |Δx|≦|Δy| and Δx≦0,       
 
         [0072]    Some trackball devices are very sensitive and report even very slight movements. Jitter elimination can be used to prevent such slight movements from producing a bank selection event. One way to implement jitter elimination is to ignore trackball movements with amplitudes less than certain values. For example, trackball events are ignored if √{square root over (Δx 2 +Δy 2 )} is less than some pre-defined small value. 
         [0073]      FIG. 13  illustrates a mapping from a range of trackball inputs to directional events. The horizontal and vertical axes represent Δx and Δy respectively. Movements in region  1340  select the upper bank, movements in region  1342  select the right bank, movements in region  1344  select the lower bank, and movements in region  1346  select the left bank. The implementation of jitter elimination results in movements in region  1348  being ignored. 
         [0074]    Bank selection events can also be produced by inputs to a keyboard or similar device. In an example four-bank configuration, certain keys on the keyboard can be assigned to each directional bank. For example, pressing ‘A’ can select the left bank, ‘L’ can select the right bank, and so on. The arrow keys on the keyboard can also be used to specify directional banks. Multiple keys can be assigned to a bank, such as assigning the ‘A’, ‘S’, ‘D’, ‘F’, and ‘G’ keys to the left bank. Note that the letter keys that are pressed to create a bank selection event can be different than the letters in the bank. 
         [0075]    On mobile phones equipped with a standard phone numeric keyboard, numbered keys can generate bank selection events that result in the selection of additional banks that do not appear on the display  112 . For example, key  3  is associated with the letters ‘G’, ‘H’, and ‘J’, and pressing this key results in the selection of a bank containing the letters G, H, and J, even if there are other banks displayed on the display containing those letters. On a full keyboard, the individual keys can be pressed to generate events to select undisplayed banks containing only a single letter corresponding to the key. Keys on a numeric keypad or keyboard can be used to select additional banks in combination with directional keys that are used to select the banks shown on the display. For example, a first bank selection can be for a displayed directional bank, and the next bank selection can be for a three-letter bank associated with a key of a numeric keypad. 
         [0076]    In addition to the bank selection events, there are various other events that the user creates. There is a scrolling mode entry event and a selection event in scrolling mode. These events can be created by the user pressing the center button of a navigation panel, such as button  1104  in  FIG. 11 . In scrolling mode there are also cursor up and cursor down events to move the cursor. These events can be generated through the directional buttons  1102 A and  1102 C. Various other methods apparent to those skilled in the art can be used to generate these events from a variety of input devices. 
         [0077]    Optional events such as backspace or reset can also be part of the user interface. A backspace event (also referred to as an undo event) can undo the previous event. For example, a backspace event can undo the most recent bank selection event and increase the size of the current result list. The reset event can take the user back to the initial selection screen illustrated in  FIG. 2 . The user can generate these events by pressing buttons on the electronic device that have been assigned to the events. These events can also be generated by buttons or menus displayed on the screen  112 , such as the “Back” button  212  in  FIG. 2 . These on-screen buttons can be selected by standard methods such as a user pressing menu keys provided on the device. 
         [0078]    The event generation methods described above provide several advantages. The user can generate all events necessary to select an entry from a list with one hand using most input devices, including those described above. The input device can also be small and can fit on a mobile device. In fact most mobile devices include a navigation panel that can be used for selecting directional banks. The experienced user who is familiar with the input device and the bank configuration does not need to look at the screen  112  or input device to make bank selections and select an entry. 
       Bank Configuration 
       [0079]    The banks  202  provided for user selection can have various configurations. In  FIG. 2 , there are four banks displayed at the four edges of the list display area  204 . The banks contain letters grouped based on regions of the standard QWERTY keyboard (consecutive keys of Q-W-E-R-T-Y in a row). The upper bank contains letters corresponding to the top row of the keyboard, the left and right banks contain letters corresponding to the left and right portions of the middle row of the keyboard, and the lower bank contains letters corresponding to the bottom row of the keyboard. 
         [0080]    An alternative configuration is for the letters in the banks to be grouped alphabetically, where the upper bank contains ‘ABCDEFG’, left bank contains ‘HIJKLMN’, the right bank contains ‘OPQRSTU’, and the lower bank contains ‘VWXYZ’. Other configurations include groupings based on the AZERTY keyboard, Dvorak keyboard, double-byte characters, and the like. 
         [0081]    Letters may be grouped into banks in various other ways. The same letter may also be contained in more than one bank. The banks may contain numbers or other symbols. The number of banks may also vary.  FIG. 13  illustrates a configuration with six banks  202  placed around a list display area  204 . Such a bank configuration may work well with a six-direction input device 
         [0082]    Several factors can be considered when determining bank configuration. Dividing the letters among a larger number of banks allows the user to specify a smaller set of letters when choosing a bank, generally resulting in a faster narrowing of the current result list. However, bank selection event generation becomes more complex with more banks because a wider range of inputs are produced by the user. 
         [0083]    For a given number of banks, there are many options for grouping the letters into particular banks. It may be desirable to configure banks so that the user can more easily remember the letters contained in a bank. The QWERTY keyboard-based bank configuration described above may be more easily remembered by users familiar with such a keyboard. It is not necessary for users to memorize the letters contained in the banks since the banks are displayed on display  112 . However, users who do memorize the bank configuration may achieve faster bank selection speeds by avoiding having to visually scan the banks. 
         [0084]    Banks may also be configured to minimize the number of events issued by the user to select items. As described above, an event is required for each bank selection, and additional events can be required to enter scrolling mode, to move the cursor  902  in scrolling mode, and to select the desired entry in scrolling mode. The letters may be distributed among the banks to minimize the number of such events needed to select an item on average. Generally this can be achieved by distributing in multiple banks the frequently occurring letters from the list entries instead of having many frequently occurring letters in a single bank. However, the optimal strategy for distributing letters among the banks depends on the letter compositions of the list entries and on the frequency of access to each list entry. The bank configurations can vary dynamically based on algorithms implemented in the electronic device that determine optimal bank configurations based on the list entries and usage patterns. 
         [0085]    Some portions of above description describe the embodiments of the invention in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof. 
         [0086]    As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same 
         [0087]    Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context. 
         [0088]    As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present). 
         [0089]    In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise. 
         [0090]    Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for list entry selection. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the present invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus of the present disclosure disclosed herein without departing from the spirit and scope of the invention as defined in the appended claims. 
       APPENDIX A 
       [0091]    Listed below are the names in the Example List used in the embodiments presented above. 
         [0000]    
       
         
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 Agatha Christie 
               
               
                   
                 Albert Camus 
               
               
                   
                 Aldous Huxley 
               
               
                   
                 Alex Haley 
               
               
                   
                 Alice Walker 
               
               
                   
                 Allen Ginsberg 
               
               
                   
                 Amy Tan 
               
               
                   
                 Anais Nin 
               
               
                   
                 Arthur C. Clarke 
               
               
                   
                 Arthur Conan Doyle 
               
               
                   
                 Arthur Miller 
               
               
                   
                 Ayn Rand 
               
               
                   
                 Barbara Kingsolver 
               
               
                   
                 Bernard Malamud 
               
               
                   
                 C. S. Lewis 
               
               
                   
                 Charles Bukowski 
               
               
                   
                 D. H. Lawrence 
               
               
                   
                 Danielle Steel 
               
               
                   
                 Dorothy Parker 
               
               
                   
                 Dr. Seuss 
               
               
                   
                 E. B. White 
               
               
                   
                 E. M. Forster 
               
               
                   
                 Edgar Rice Burroughs 
               
               
                   
                 Edith Wharton 
               
               
                   
                 Edward Albee 
               
               
                   
                 Ernest Hemingway 
               
               
                   
                 Ernie Pyle 
               
               
                   
                 Eudora Welty 
               
               
                   
                 Eugene O&#39;Neill 
               
               
                   
                 F. Scott Fitzgerald 
               
               
                   
                 Flannery O&#39;Connor 
               
               
                   
                 Gabriel Garcia Marquez 
               
               
                   
                 George Orwell 
               
               
                   
                 Graham Greene 
               
               
                   
                 Harper Lee 
               
               
                   
                 Herman Wouk 
               
               
                   
                 Hunter S. Thompson 
               
               
                   
                 Isaac Asimov 
               
               
                   
                 Isabel Allende 
               
               
                   
                 J. D. Salinger 
               
               
                   
                 J. R. R. Tolkien 
               
               
                   
                 Jack Kerouac 
               
               
                   
                 Jack London 
               
               
                   
                 James Baldwin 
               
               
                   
                 James Joyce 
               
               
                   
                 James Michener 
               
               
                   
                 John Cheever 
               
               
                   
                 John Grisham 
               
               
                   
                 John Irving 
               
               
                   
                 John McPhee 
               
               
                   
                 John Steinbeck 
               
               
                   
                 John Updike 
               
               
                   
                 Jorge Luis Borges 
               
               
                   
                 Joseph Conrad 
               
               
                   
                 Judy Blume 
               
               
                   
                 Kurt Vonnegut 
               
               
                   
                 Langston Hughes 
               
               
                   
                 Laura Ingalls Wilder 
               
               
                   
                 Marcel Proust 
               
               
                   
                 Margaret Atwood 
               
               
                   
                 Maya Angelou 
               
               
                   
                 Milan Kundera 
               
               
                   
                 Octavia E. Butler 
               
               
                   
                 Pablo Neruda 
               
               
                   
                 Ralph Ellison 
               
               
                   
                 Ray Bradbury 
               
               
                   
                 Raymond Carver 
               
               
                   
                 Roald Dahl 
               
               
                   
                 Robert Frost 
               
               
                   
                 Robert Heinlein 
               
               
                   
                 Rod Serling 
               
               
                   
                 Saul Bellow 
               
               
                   
                 Shel Silverstein 
               
               
                   
                 Sinclair Lewis 
               
               
                   
                 Stephen King 
               
               
                   
                 Sylvia Plath 
               
               
                   
                 T. S. Eliot 
               
               
                   
                 Tennessee Williams 
               
               
                   
                 Thomas Mann 
               
               
                   
                 Thomas Pynchon 
               
               
                   
                 Tom Robbins 
               
               
                   
                 Tom Wolfe 
               
               
                   
                 Toni Morrison 
               
               
                   
                 Truman Capote 
               
               
                   
                 Upton Sinclair 
               
               
                   
                 Ursula K. Le Guin 
               
               
                   
                 Virginia Woolf 
               
               
                   
                 Vladimir Nabokov 
               
               
                   
                 W. Somerset Maugham 
               
               
                   
                 W. H. Auden 
               
               
                   
                 Willa Cather 
               
               
                   
                 William Faulkner 
               
               
                   
                 William Golding 
               
               
                   
                 William Styron 
               
               
                   
                 William Butler Yeats 
               
               
                   
                 Winston Churchill 
               
               
                   
                 Zora Neale Hurston