2014-06-14 2 views
2

Comment traitez-vous habituellement les listes et le fait qu'elles n'ont pas la propriété d'identifier clairement un article spécifique? Jusqu'à présent, la seule solution que je pourrais proposer est de mettre la clé que j'utilise au début, suivie par un tiret et le texte qui est affiché sur chaque élément. De cette façon, lorsque je récupère le texte de l'élément sélectionné, je peux obtenir la clé pour l'élément.j2me - Est-ce qu'une liste a la propriété de garder la trace de la 'clé' qui identifie l'article

Voici comment je le fais, mais il y a sûrement une meilleure solution et j'aimerais vraiment que vous partagiez votre expérience dans ce genre de scénarios.

Merci d'avance.

enter image description here

Répondre

2

L'image Ooks comme vous garder toutes les données gérées dans votre application dans le texte des éléments d'une liste standard.

Mieux vaut une classe distincte pour les objets conteneur de données et un écran de synthèse dérivé de List qui prend un tableau de ces objets conteneur et instancie le Items à partir de cela. Cet écran pourrait alors fournir une méthode

DataContainer getSelectedObject() 

qui utilise getSelectedIndex() en interne pour rechercher l'objet.

Plus précisément (Overview.java)

package mvc.midlet; 

import javax.microedition.lcdui.List; 

public class Overview extends List { 

    private final DomainObject[] data; 
    public static Overview create(DomainObject[] data) { 
     int i = 0; 
     for(; i < data.length; i++) { 
      if(data[i] == null) break; 
     } 
     String[] names = new String[i]; 
     for(int j = 0; j < i; j++) { 
      names[j] = data[j].name; 
     } 
     return new Overview(names, data); 
    } 

    protected Overview(String names[], DomainObject[] data) { 
     super("Overview", IMPLICIT, names, null); 
     this.data = data; 
    } 

    public DomainObject getSelectedObject() { 
     return data[this.getSelectedIndex()]; 
    } 
} 
+0

Désolé de vous déranger Gregor, mais pensez-vous que vous pourriez fournir un exemple de base ou expliquer un peu plus en détail votre approche? Merci – Axel

+0

Merci @Gregor. Ce n'est pas le je veux être nourri à la cuillère, mais je ne suis pas sûr de ce que vous entendez par "instancier les éléments de cela". Je pensais que les listes ne pouvaient contenir que des éléments de chaînes. Y at-il un moyen de stocker l'objet est la liste? Pensez-vous que vous pourriez expliquer cette partie ?? – eddy

+0

@eddy: ceci est une extension de la vue d'ensemble de ma réponse à votre [question précédente] (http://stackoverflow.com/questions/24119067/how-do-you-organize-your-code-in-a-j2me -project/24150485 # 24150485) –

Questions connexes