IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Ajouter une barre de recherche fonctionnelle à une ListView


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut Ajouter une barre de recherche fonctionnelle à une ListView
    Bonjour ,

    Dans le but de créer une barre de recherche fonctionnelle dans ma ListView en utlisant un Editext, j'ai suivis un tutoriel tres simple mais celui-ci fonctionne mais avec un ArrayAdapter<String> ..

    http://www.youtube.com/watch?feature...&v=Xba2ECLn1Go

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    // Listview Data
            String products[] = {"Dell Inspiron", "HTC One X", "HTC Wildfire S", "HTC Sense", "HTC Sensation XE",
                                    "iPhone 4S", "Samsung Galaxy Note 800",
                                    "Samsung Galaxy S3", "MacBook Air", "Mac Mini", "MacBook Pro"};
     
            lv = (ListView) findViewById(R.id.list_view);
            inputSearch = (EditText) findViewById(R.id.inputSearch);
     
            // Adding items to listview
            adapter = new ArrayAdapter<String>(this, R.layout.list_item, R.id.product_name, products);
            lv.setAdapter(adapter);
     
            /**
             * Enabling Search Filter
             * */
            inputSearch.addTextChangedListener(new TextWatcher() {
     
                @Override
                public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
                    // When user changed the Text
                    MainActivity.this.adapter.getFilter().filter(cs);
                }
     
                @Override
                public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
                        int arg3) {
                    // TODO Auto-generated method stub
     
                }
     
                @Override
                public void afterTextChanged(Editable arg0) {
                    // TODO Auto-generated method stub
                }
            });

    J'aimerais a la place utiliser mon custom ArrayAdapter<monObjet> .

    Serait ce possible avec la meme methode ?

    Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Cisco
    Inscrit en
    Juillet 2012
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Cisco
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2012
    Messages : 71
    Points : 55
    Points
    55
    Par défaut
    Il suffisait simplement d'Overrider la methode toString() de ma classe model "myObject" en y renvoyant la donnée que je veux filtrer avec mon EditText et de rajouter l'attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:textFilterEnabled="true"
    a ma ListView et cela marche parfaitement bien.

    Mais si je tape un mot dans mon EditText étant compris dans le titre d'un de mes items de ma Liste cela va marcher mais dés que je vais mettre un espace après ce mot (qui ne se trouve pas au début du titre de mon item) cela va effacer tout les resultats..

    Exemple:

    Dans ma Barre de recherche je tape "vin" et dans ma Liste j'ai cet item:

    -------------------
    -----------------
    Pot de vin de chez l'hermite
    -----------------

    ce seul item va bien rester mais si je met un espace après "vin", le résultat s'enleve..

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 17
    Points : 14
    Points
    14
    Par défaut
    Citation Envoyé par eento Voir le message
    Il suffisait simplement d'Overrider la methode toString() de ma classe model "myObject" en y renvoyant la donnée que je veux filtrer avec mon EditText et de rajouter l'attribut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    android:textFilterEnabled="true"
    a ma ListView et cela marche parfaitement bien.
    Bonjour, je sais que ce sujet date un peu mais je voudrais savoir comment vous avez fais cela, je suis débutante en android et comme par hasard j'ai suivis le même tutoriel que vous! et je veux faire pareil! c'est à dire l'ajouter à ma propre listview:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<Produit> mProductList;
    Voici le code de mon activity CatalogueActivity.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public class CatalogueActivity extends Activity {
     
     private List<Produit> mProductList;
     
     /** Called when the activity is first created. */
     @Override
     
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.catalogue);
     
      // Obtain a reference to the product catalog
      mProductList = ShoppingListHelper.getCatalog(getResources());
     
      // Create the list
      ListView listViewCatalog = (ListView) findViewById(R.id.ListViewCatalog);
      listViewCatalog.setAdapter(new ProduitAdapter(mProductList, getLayoutInflater(), false));
     
      listViewCatalog.setOnItemClickListener(new OnItemClickListener() {
     
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position,
         long id) {
        Intent productDetailsIntent = new Intent(getBaseContext(),ProduitDetailsActivity.class);
        productDetailsIntent.putExtra(ShoppingListHelper.PRODUCT_INDEX, position);
        startActivity(productDetailsIntent);
       }
      });
     
      Button viewShoppingCart = (Button) findViewById(R.id.ButtonViewCart);
      viewShoppingCart.setOnClickListener(new OnClickListener() {
     
       @Override
       public void onClick(View v) {
        Intent viewShoppingCartIntent = new Intent(getBaseContext(), ShoppingListActivity.class);
        startActivity(viewShoppingCartIntent);
       }
      });
     
     }
    }
    Merci d'avance

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/10/2013, 11h11
  2. Barre de recherche sur une ListView
    Par eento dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 17/09/2012, 13h27
  3. [PHP 5.0] Barre de recherche sur une page html
    Par johnson95 dans le forum Langage
    Réponses: 3
    Dernier message: 19/03/2009, 00h43
  4. fonction qui écrit dans une barre de recherche sur internet
    Par ubssecurities dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/08/2008, 10h36
  5. Une barre de recherche Qt pour Firefox
    Par Alp dans le forum Qt
    Réponses: 3
    Dernier message: 07/02/2008, 18h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo