2012-06-06 17 views
6

¿Hay alguna API para establecer el límite no. de caracteres en SearchView?¿Podemos limitar el número de caracteres en el texto de edición de SearchView en Android?

+2

atributo '' XML de Edittext' androide: maxLength = 15' permitirá que sólo el 15 por carácter. ¿Es esto lo único que necesitas? – Praveenkumar

+0

Esto puede no funcionar ... 'SearchView' no extiende' EditText'. Sé que 'inputType' no funciona en' SearchView' por alguna razón tampoco. –

+0

@AlexLockwood se puede saber cuál es el 'SearchView' es que, como' AutocomplteTextView' – Praveenkumar

Respuesta

-1
EditText et = new EditText(this); 
int maxLength = 3; 
InputFilter[] FilterArray = new InputFilter[1]; 
FilterArray[0] = new InputFilter.LengthFilter(maxLength); 
et.setFilters(FilterArray); 
+0

Estoy hablando de SearchView donde tenemos que anular onClose(), onQueryTextChange (String newText), onQueryTextSubmit (String query). –

-3

En diseño xml probar esto ..

android:maxLength="20" //20 is number of characters. 

puede ayudarle ..

+0

Ha visto esto [Comentario] (http://stackoverflow.com/questions/10914539/can-we-limit-the-number-of-character-in-edittext-of-searchview-in-android#comment14233570_10914539) – Praveenkumar

+0

En SearchView no hay nada para establecer la duración del carácter. –

+0

La vista de búsqueda no tiene "maxLength" –

3

Usar este código se va a hacer la búsqueda sólo si la longitud es menor o igual a 5. Puede hacer que cambie en consecuencia, como devolver true desde onQueryTextChange() cuando texto> 5.

final SearchView searchView = (SearchView) mSearchMenuItem.getActionView();  
      searchView.setSearchableInfo(searchManager.getSearchableInfo(mActivity.getSearchComponentName())); 
      searchView.setIconifiedByDefault(true); 
      searchView.setSubmitButtonEnabled(true); 
      searchView.setOnQueryTextListener(new OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String arg0) { 
       // TODO Auto-generated method stub 
       return false; 
      } 

      @Override 
      public boolean onQueryTextChange(String arg0) { 
       if(arg0.length()>5){ 
        System.out.println("Text character is more than 5"); 
        searchView.setQuery(arg0.substring(0,5), false); 
       } 
       return false; 
      } 
     }); 
3
EditText et = (EditText)searchView.findViewById(searchView.getContext().getResources() 
      .getIdentifier("android:id/search_src_text", null, null)); 
    et.setFilters(new InputFilter[] { new InputFilter.LengthFilter({max_text_length}) }); 
5

estoy utilizando este código:

TextView et = (TextView) searchView.findViewById(R.id.search_src_text); 
     et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)}); 
Cuestiones relacionadas