user interface - BlackBerry: agregue elementos a ListField
user-interface (5)
¿Puede alguien darme un ejemplo simple sobre cómo agregar tres filas a ListField para que la lista muestre algo como esto?
Artículo 1
Artículo 2
Artículo 3
Solo quiero mostrar una lista en la que el usuario puede seleccionar uno de los elementos y el programa haría algo dependiendo del elemento seleccionado.
Busqué en Internet pero parece imposible encontrar un ejemplo simple sobre cómo hacerlo (la mayoría de los ejemplos que encontré están incompletos) y la documentación de Blackberry es terrible.
¡Gracias!
Probablemente desee ver usando un ObjectListField. El manejo de la acción de selección se realiza a través del objeto de pantalla que lo contiene, he hecho esto a continuación utilizando un elemento de menú, no estoy seguro de cómo configurar un oyente de selección predeterminado, es posible que tenga que detectar eventos de tecla y rueda de desplazamiento.
Un código de ejemplo para ti: (¡no probado!)
MainScreen screen = new MainScreen();
screen.setTitle("my test");
final ObjectListField list = new ObjectLIstField();
String[] items = new String[] { "Item 1", "Item 2", "Item 3" };
list.set(items);
screen.addMenuItem(new MenuItem("Select", 100, 1) {
public void run() {
int selectedIndex = list.getSelectedIndex();
String item = (String)list.get(selectedIndex);
// Do someting with item
});
screen.add(list);
Puede anular el método navigationClick de la siguiente manera:
ObjectListField list = new ObjectListField()
{
protected boolean navigationClick(int status, int time)
{
// Your implementation here.
}
};
private ListField fList = new ListField(){
protected boolean navigationClick(int status, int time) {
System.out.println("omt Click");
return true;
};
};
final class SimpleListScreen extends MainScreen
{
public SimpleListScreen()
{
super(Manager.NO_VERTICAL_SCROLL);
setTitle("Simple List Demo");
add(new LabelField("My list", LabelField.FIELD_HCENTER));
add(new SeparatorField());
Manager mainManager = getMainManager();
SimpleList listField = new SimpleList(mainManager);
listField.add("Item 1");
listField.add("Item 2");
listField.add("Item 3");
}
}
//add listener so that when an item is chosen,it will do something
Puede detectar el clic en cada elemento de la lista anulando
protected boolean navigationClick(int status,int time)
Entonces solo necesita averiguar qué hacer en respuesta al clic. La forma en que lo hice fue mediante el uso de una clase anónima, establecida para cada elemento de la lista.