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

Android Discussion :

Barre de recherche StringIndexOutOfBoundsException editText


Sujet :

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 Barre de recherche StringIndexOutOfBoundsException editText
    Bonjour à tous(tes),

    en avançant sur mon projet, je me vois lutter devant un problème que je n'arrive pas à résoudre.

    Voulant gérer une fonction de recherche sur une ListView j'ai donc utilisé un EditText.

    Je me pose le problème actuel: ma méthode fonctionne bien lorsque je rentre 2 caractères dans l'EditText et ne laisse apparaître que les items contenant en "Name" ce que je lui passe, mais lorsque je rentre un troisième caractère l'application plante et voici mon log :

    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
    09-14 16:49:05.647: E/AndroidRuntime(20020): FATAL EXCEPTION: main
    09-14 16:49:05.647: E/AndroidRuntime(20020): java.lang.StringIndexOutOfBoundsException: length=2; regionStart=0; regionLength=3
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at java.lang.String.startEndAndLength(String.java:593)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at java.lang.String.substring(String.java:1474)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at java.lang.String.subSequence(String.java:1861)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.bordeaux.code.MyListActivity$3.onTextChanged(MyListActivity.java:126)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.widget.TextView.sendOnTextChanged(TextView.java:8315)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.widget.TextView.handleTextChanged(TextView.java:8362)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.widget.TextView$ChangeWatcher.onTextChanged(TextView.java:8725)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.sendTextChange(SpannableStringBuilder.java:892)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:352)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.change(SpannableStringBuilder.java:266)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:443)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:420)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:29)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:667)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.view.inputmethod.BaseInputConnection.commitText(BaseInputConnection.java:188)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.internal.widget.EditableInputConnection.commitText(EditableInputConnection.java:149)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:279)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:77)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.os.Handler.dispatchMessage(Handler.java:99)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.os.Looper.loop(Looper.java:137)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at android.app.ActivityThread.main(ActivityThread.java:4517)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at java.lang.reflect.Method.invokeNative(Native Method)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at java.lang.reflect.Method.invoke(Method.java:511)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)
    09-14 16:49:05.647: E/AndroidRuntime(20020): 	at dalvik.system.NativeStart.main(Native Method)
    voici mon code actuel :

    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
    inputSearch = (EditText) findViewById(R.id.inputSearch);
     
    inputSearch.addTextChangedListener(new TextWatcher() {
    		          public void onTextChanged(CharSequence s, int start, int before, int count)
    		          {
    		        	  textlength = inputSearch.getText().length();
    		        	  String query = inputSearch.getText().toString();
     
    		        	  arr_sort.clear();
    		        	  for(int i=0;i < currentArray.size();i++)
    		        	  {
    		        		  if(textlength <= currentArray.get(i).getName().length())
    		        		  {
    		        			  String[] wordArray = currentArray.get(i).getName().split(" ");
    		        			  for (int j = 0; j < wordArray.length; j++)
    		                      {
    		        				  if(query.equalsIgnoreCase((String) wordArray[j].subSequence(0, textlength)))
    		                          {
    		        					  arr_sort.add(currentArray.get(i));
    		        					  break;
    		                          }
    		                      }
    		        		  }
    		        	  }
    		        	list_adapter = new announcersListAdapter(MyListActivity.this, R.layout.tab_list_item, arr_sort);
    		      		setListAdapter(list_adapter);
     
    		          }
     
    		            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
    		                    int arg3) {
    		            }
     
    					public void afterTextChanged(Editable s) {
    					}
    		        });
    Merci de m'aider

  2. #2
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Facile avec 5 character (textlength=5) tu essayes de filtrer une string qui en a moins ... et tu fais un substring(0,5) dessus => StringIndexOutOfBoundsException....

    Enfin.... quand je dis 5, ça peut être 2 (et des chaines avec 1 seul char), ou 1 (et des chaines vides)
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. problème de langue barre de recherche google
    Par tiliut dans le forum Firefox
    Réponses: 2
    Dernier message: 21/02/2009, 11h09
  2. Barre de recherche - Genre Firefox-Google
    Par MikeV dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/04/2008, 13h58
  3. Une barre de recherche Qt pour Firefox
    Par Alp dans le forum Qt
    Réponses: 3
    Dernier message: 07/02/2008, 18h37
  4. Barre de recherche IE7 pour Developpez.com ?
    Par vodevil dans le forum Evolutions du club
    Réponses: 7
    Dernier message: 11/02/2007, 20h03
  5. barre de recherche dans les fonctions php pour firefox
    Par titoumimi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 03/02/2006, 10h16

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