|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.microedition.lcdui.Displayable
javax.microedition.lcdui.Screen
javax.microedition.lcdui.List
public class List
A Screen
containing list of choices. Most of its behavior is common with
class ChoiceGroup
, and their common API, and the different List
types in
particular, are defined in interface Choice
. When a List
is present on the
display, the user can interact with it by selecting elements and possibly
by traversing and scrolling among them. Traversing and scrolling operations
do not cause application-visible events. The system notifies the application
only when a Command
is invoked by notifying
its CommandListener
. The List
class also supports a select command that may be invoked specially depending
upon the capabilities of the device.
The notion of a List
element is central to the user's
interaction with the List
. On devices that have a dedicated hardware "select"
or "go" key, the select operation is implemented with that key. Devices that
do not have a dedicated key must provide another means to do the select
operation, for example, using a soft key. The behavior of the select
operation within the different types of lists is described in the following sections.
List
objects may be created with Choice
types of Choice.EXCLUSIVE
,
Choice.MULTIPLE
, and Choice.IMPLICIT
. The Choice
type Choice.POPUP
is not allowed on List
objects.
Selection in EXCLUSIVE and MULTIPLE Lists
The select operation is not associated with a Command
object, so
the application has no means of setting a label for it or being notified
when the operation is performed. In Lists of type EXCLUSIVE
, the select
operation selects the target element and deselects the previously selected
element. In Lists of type MULTIPLE
, the select operation toggles the selected
state of the target element, leaving the selected state of other elements
unchanged. Devices that implement the select operation using a soft key will
need to provide a label for it. The label
will be something similar to "Select" for Lists of type EXCLUSIVE
,
and it will be something similar to "Mark" or "Unmark" for Lists of type MULTIPLE
.
Selection in IMPLICIT Lists
The select operation is associated with a Command
object referred to as
the select command. When the user performs the select operation, the system
will invoke the select command by notifying the List
's CommandListener
. The
default select command is the system-provided command SELECT_COMMAND
. The
select command may be modified by the application through use of
the setSelectCommand
method. Devices that implement the select operation
using a soft key will use the label from the select command. If the select
command is SELECT_COMMAND
, the device may choose to provide its own label
instead of using the label attribute of SELECT_COMMAND
. Applications
should generally provide their own select command to replace SELECT_COMMAND
.
This allows applications to provide a meaningful label, instead of relying
on the one provided by the system for SELECT_COMMAND
. The implementation
must not invoke the select command if there are no elements in the List
,
because if the List
is empty the selection does not exist. In this case
the implementation should remove or disable the select command if it would
appear explicitly on a soft button or in a menu. Other commands can be
invoked normally when the List
is empty.
Use of IMPLICIT Lists
IMPLICIT
Lists can be used to construct menus by providing operations as
List
elements. The application provides a Command
that is used to select
a List
element and then defines this Command
to be used as the select
command. The application must also register a CommandListener
that is
called when user selects or activates the Command
:
String[] elements = { ... }; //Menu items as List elements
List menuList = new List("Menu", List.IMPLICIT, elements, null);
Command selectCommand = new Command("Open", Command.ITEM, 1);
menuList.setSelectCommand(selectCommand);
menuList.setCommandListener(...);
The listener can query the List
to determine which element is
selected and then perform the corresponding action. Note that
setting a command as the select command adds it to the List
as a side
effect.
The select command should be considered as a List
displaying email headers might have three operations: read, reply,
and delete. Read is considered to be the default operation.
List list = new List("Email", List.IMPLICIT, headers);
readCommand = new Command("Read", Command.ITEM, 1);
replyCommand = new Command("Reply", Command.ITEM, 2);
deleteCommand = new Command("Delete", Command.ITEM, 3);
list.setSelectCommand(readCommand);
list.addCommand(replyCommand);
list.addCommand(deleteCommand);
list.setCommandListener(...);
On a device with dedicated select key, pressing this key will invoke
readCommand
. On a device without a select key, the user is still
able to invoke the read command, since it is also provided as an
ordinary Command
.
It should be noted that this kind of default operation must be used carefully, and the usability of the resulting user interface must always kept in mind. The default operation should always be the most intuitive operation on a particular List.
Field Summary | ||
---|---|---|
static Command |
SELECT_COMMAND
The default select command for IMPLICIT Lists. |
Fields inherited from interface javax.microedition.lcdui.Choice |
---|
EXCLUSIVE, IMPLICIT, MULTIPLE, POPUP, TEXT_WRAP_DEFAULT, TEXT_WRAP_OFF, TEXT_WRAP_ON |
Constructor Summary | ||
---|---|---|
List(String title,
int listType)
Creates a new, empty List, specifying its title and the type of the list. |
||
List(String title,
int listType,
String[] stringElements,
Image[] imageElements)
Creates a new List, specifying its title, the type of the List, and an array of Strings and Images to be used as its initial contents. |
Method Summary | ||
---|---|---|
int |
append(String stringPart,
Image imagePart)
Appends an element to the Choice. |
|
void |
delete(int elementNum)
Deletes the element referenced by elementNum. |
|
void |
deleteAll()
Deletes all elements from this List. |
|
int |
getFitPolicy()
Gets the application's preferred policy for fitting Choice element
contents to the available screen space. |
|
Font |
getFont(int elementNum)
Gets the application's preferred font for rendering the specified element of this Choice . |
|
Image |
getImage(int elementNum)
Gets the Image part of the element referenced by elementNum. |
|
int |
getSelectedFlags(boolean[] selectedArray_return)
Queries the state of a List and returns the state of all elements in the boolean array selectedArray_return. |
|
int |
getSelectedIndex()
Returns the index number of an element in the Choice that is selected. |
|
String |
getString(int elementNum)
Gets the String part of the element referenced by elementNum. |
|
void |
insert(int elementNum,
String stringPart,
Image imagePart)
Inserts an element into the Choice just prior to the element specified. |
|
boolean |
isSelected(int elementNum)
Gets a boolean value indicating whether this element is selected. |
|
void |
removeCommand(Command cmd)
The same as Displayable.removeCommand
but with the following additional semantics. |
|
void |
set(int elementNum,
String stringPart,
Image imagePart)
Sets the element referenced by elementNum to the specified element, replacing the previous contents of the element. |
|
void |
setFitPolicy(int fitPolicy)
Sets the application's preferred policy for fitting Choice element
contents to the available screen space. |
|
void |
setFont(int elementNum,
Font font)
Sets the application's preferred font for rendering the specified element of this Choice . |
|
void |
setSelectCommand(Command command)
Sets the Command to be used for an
IMPLICIT List selection
action. |
|
void |
setSelectedFlags(boolean[] selectedArray)
Attempts to set the selected state of every element in the Choice. |
|
void |
setSelectedIndex(int elementNum,
boolean selected)
Sets the selected state of an element. |
|
int |
size()
Gets the number of elements present. |
Methods inherited from class javax.microedition.lcdui.Displayable |
---|
addCommand, getHeight, getTicker, getTitle, getWidth, isShown, setCommandListener, setTicker, setTitle, sizeChanged |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final Command SELECT_COMMAND
The default select command for IMPLICIT
Lists. Applications using
an IMPLICIT
List should set their own select command using
setSelectCommand
.
The field values of SELECT_COMMAND
are:
- label = "" (an empty string)
- type = SCREEN
- priority = 0
(It would be more appropriate if the type were ITEM
,
but the type of SCREEN
is retained for historical purposes.)
The application should not use these values for recognizing
the SELECT_COMMAND
. Instead, object identities
of the Command
and Displayable
(List
) should be used.
SELECT_COMMAND
is treated as an ordinary
Command
if it is used with other Displayable
types.
Constructor Detail |
---|
public List(String title, int listType)
Creates a new, empty List, specifying its title and the type of the list.
title
- the screen's title (see Screen
)listType
- one of IMPLICIT
, EXCLUSIVE
, or MULTIPLE
IllegalArgumentException
- if listType is not one of IMPLICIT
,
EXCLUSIVE
, or MULTIPLE
.Choice
public List(String title, int listType, String[] stringElements, Image[] imageElements)
Creates a new List, specifying its title, the type of the List, and an array of Strings and Images to be used as its initial contents.
The stringElements array must be non-null and every array element must also be non-null. The length of the stringElements array determines the number of elements in the List. The imageElements array may be null to indicate that the List elements have no images. If the imageElements array is non-null, it must be the same length as the stringElements array. Individual elements of the imageElements array may be null in order to indicate the absence of an image for the corresponding List element. Any elements present in the imageElements array must refer to immutable images.
title
- the screen's title (see Screen
)listType
- one of IMPLICIT
, EXCLUSIVE
, or MULTIPLE
stringElements
- set of strings specifying the string parts of the
List elementsimageElements
- set of images specifying the image parts of
the List elements
NullPointerException
- if stringElements is null
NullPointerException
- if the stringElements array contains
any null elements
IllegalArgumentException
- if the imageElements array is non-null
and has a different length from the stringElements array
IllegalArgumentException
- if listType is not one of IMPLICIT
,
EXCLUSIVE
, or MULTIPLE
.
IllegalArgumentException
- if any image in the imageElements
array is mutableChoice.EXCLUSIVE
,
Choice.MULTIPLE
,
Choice.IMPLICIT
Method Detail |
---|
public int size()
Choice
Gets the number of elements present.
size
in interface Choice
public String getString(int elementNum)
Choice
Gets the String part of the element referenced by elementNum. The elementNum parameter must be within the range [0..size()-1], inclusive.
getString
in interface Choice
elementNum
- the index of the element to be queried
IndexOutOfBoundsException
- if elementNum is invalidList.getImage(int)
public Image getImage(int elementNum)
Choice
Gets the Image part of the element referenced by elementNum. The elementNum parameter must be within the range [0..size()-1], inclusive.
getImage
in interface Choice
elementNum
- the number of the element to be queried
IndexOutOfBoundsException
- if elementNum is invalidList.getString(int)
,
List.getString(int)
public int append(String stringPart, Image imagePart)
Choice
Appends an element to the Choice. The added element will be the last element of the Choice. The size of the Choice grows by one.
append
in interface Choice
stringPart
- the string part of the element to be addedimagePart
- the image part of the element to be added, or null if
there is no image part
IllegalArgumentException
- if the image is mutable
NullPointerException
- if stringPart is nullpublic void insert(int elementNum, String stringPart, Image imagePart)
Choice
Inserts an element into the Choice just prior to the element specified.
The size of the Choice grows by one.
The elementNum parameter must be within the range
[0..size()], inclusive. The index of the last element is size()-1, and
so there is actually no element whose index is size(). If this value
is used for elementNum, the new element is inserted immediately after
the last element. In this case, the effect is identical to
append()
.
insert
in interface Choice
elementNum
- the index of the element where insertion is to occurstringPart
- the string part of the element to be insertedimagePart
- the image part of the element to be inserted,
or null if there is no image part
IndexOutOfBoundsException
- if elementNum is invalid
IllegalArgumentException
- if the image is mutable
NullPointerException
- if stringPart is nullpublic void delete(int elementNum)
Choice
Deletes the element referenced by elementNum. The size of the Choice shrinks by one. It is legal to delete all elements from a Choice. The elementNum parameter must be within the range [0..size()-1], inclusive.
delete
in interface Choice
elementNum
- the index of the element to be deleted
IndexOutOfBoundsException
- if elementNum is invalidpublic void deleteAll()
deleteAll
in interface Choice
public void set(int elementNum, String stringPart, Image imagePart)
Choice
Sets the element referenced by elementNum to the specified element, replacing the previous contents of the element. The elementNum parameter must be within the range [0..size()-1], inclusive.
set
in interface Choice
elementNum
- the index of the element to be setstringPart
- the string part of the new elementimagePart
- the image part of the element, or null if there is
no image part
IndexOutOfBoundsException
- if elementNum is invalid
IllegalArgumentException
- if the image is mutable
NullPointerException
- if stringPart is nullpublic boolean isSelected(int elementNum)
Choice
Gets a boolean value indicating whether this element is selected. The elementNum parameter must be within the range [0..size()-1], inclusive.
isSelected
in interface Choice
elementNum
- index to element to be queried
IndexOutOfBoundsException
- if elementNum is invalidpublic int getSelectedIndex()
Choice
Returns the index number of an element in the Choice that is selected. For Choice types EXCLUSIVE and IMPLICIT there is at most one element selected, so this method is useful for determining the user's choice. Returns -1 if the Choice has no elements (and therefore has no selected elements).
For MULTIPLE, this always returns -1 because no single
value can in general represent the state of such a Choice.
To get the complete state of a MULTIPLE Choice,
see getSelectedFlags
.
getSelectedIndex
in interface Choice
public int getSelectedFlags(boolean[] selectedArray_return)
Queries the state of a List and returns the state of all elements in the boolean array selectedArray_return.
getSelectedFlags
in interface Choice
selectedArray_return
- array to contain the results
IllegalArgumentException
- if selectedArray_return is shorter
than the size of the List
NullPointerException
- if selectedArray_return is nullpublic void setSelectedIndex(int elementNum, boolean selected)
Sets the selected state of an element.
setSelectedIndex
in interface Choice
elementNum
- the index of the element, starting from zeroselected
- the state of the element, where true
means
selected and false
means not selected
IndexOutOfBoundsException
- if elementNum is invalidpublic void setSelectedFlags(boolean[] selectedArray)
Choice
Attempts to set the selected state of every element in the Choice. The array must be at least as long as the size of the Choice. If the array is longer, the additional values are ignored.
For Choice objects of type MULTIPLE, this sets the selected state of every element in the Choice. An arbitrary number of elements may be selected.
For Choice objects of type EXCLUSIVE and IMPLICIT, exactly one array element must have the value true. If no element is true, the first element in the Choice will be selected. If two or more elements are true, the implementation will choose the first true element and select it.
setSelectedFlags
in interface Choice
selectedArray
- an array in which the method collect the selection status
IllegalArgumentException
- if selectedArray is shorter than the
size of the List
NullPointerException
- if selectedArray is nullpublic void removeCommand(Command cmd)
Displayable.removeCommand
but with the following additional semantics.
If the command to be removed happens to be the select command, the
List
is set to have no select command, and the command is
removed from the List
.
The following code:
|
is equivalent to the following code:
|
removeCommand
in class Displayable
cmd
- the command to be removedpublic void setSelectCommand(Command command)
Command
to be used for an
IMPLICIT
List
selection
action.
By default, an implicit selection of a List will result in the
predefined List.SELECT_COMMAND
being used. This
behavior may be
overridden by calling the List.setSelectCommand()
method with an
appropriate parameter value. If a null
reference
is passed, this
indicates that no "select" action is appropriate for
the contents
of this List
.
If a reference to a command object is passed, and
it is not the special command List.SELECT_COMMAND
, and
it is not currently present on this List
object,
the command object is added to this List
as if
addCommand(command)
had been called
prior to the command being made the select command. This
indicates that this command
is to be invoked when the user performs the "select"
on an element of
this List
.
The select command should have a command type of
ITEM
to indicate
that it operates on the currently selected object. It is not an error
if the command is of some other type.
(List.SELECT_COMMAND
has a type
of SCREEN
for historical purposes.) For purposes
of presentation and
placement within its user interface, the implementation is allowed to
treat the select command as if it were of type ITEM
.
If the select command is later removed from the List
with removeCommand()
, the List
is set to have
no select command as if List.setSelectCommand(null)
had
been called.
The default behavior can be reestablished explicitly by calling
setSelectCommand()
with an argument of
List.SELECT_COMMAND
.
This method has no effect if the type of the
List
is not IMPLICIT
.
command
- the command to be used for an IMPLICIT
list
selection action, or null
if there is nonepublic void setFitPolicy(int fitPolicy)
Choice
element
contents to the available screen space. The set policy applies for all
elements of the Choice
object. Valid values are
Choice.TEXT_WRAP_DEFAULT
, Choice.TEXT_WRAP_ON
,
and Choice.TEXT_WRAP_OFF
. Fit policy is a hint, and the
implementation may disregard the application's preferred policy.
setFitPolicy
in interface Choice
fitPolicy
- preferred content fit policy for choice elements
IllegalArgumentException
- if fitPolicy
is invalidList.getFitPolicy()
public int getFitPolicy()
Choice
element
contents to the available screen space. The value returned is the
policy that had been set by the application, even if that value had
been disregarded by the implementation.
getFitPolicy
in interface Choice
Choice.TEXT_WRAP_DEFAULT
, Choice.TEXT_WRAP_ON
, or
Choice.TEXT_WRAP_OFF
List.setFitPolicy(int)
public void setFont(int elementNum, Font font)
Choice
.
An element's font is a hint, and the implementation may disregard
the application's preferred font.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
The font
parameter must be a valid Font
object or null
. If the font
parameter is
null
, the implementation must use its default font
to render the element.
setFont
in interface Choice
elementNum
- the index of the element, starting from zerofont
- the preferred font to use to render the element
IndexOutOfBoundsException
- if elementNum
is invalidList.getFont(int)
public Font getFont(int elementNum)
Choice
. The
value returned is the font that had been set by the application,
even if that value had been disregarded by the implementation.
If no font had been set by the application, or if the application
explicitly set the font to null
, the value is the default
font chosen by the implementation.
The elementNum
parameter must be within the range
[0..size()-1]
, inclusive.
getFont
in interface Choice
elementNum
- the index of the element, starting from zero
IndexOutOfBoundsException
- if elementNum
is invalidList.setFont(int elementNum, Font font)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Copyright 1999-2011 Research In Motion Limited. 295 Phillip Street, Waterloo, Ontario, Canada, N2L 3W8. All Rights Reserved.
Java is a trademark of Oracle America Inc. in the US and other countries.
Legal