2012-06-06 3 views
6

Gibt es eine API, um die Grenze zu setzen? von Zeichen in SearchView?Können wir die Anzahl der Zeichen in Edittext von SearchView in Android begrenzen?

+2

'Edittext' XML-Attribut' android: maxLength = 15' werden nur 15 Zeichen ermöglichen. Ist das nur du brauchst? – Praveenkumar

+0

Dies funktioniert möglicherweise nicht ... 'SearchView' erweitert' EditText' nicht. Ich weiß, dass 'inputType' aus irgendeinem Grund nicht in' SearchView' funktioniert. –

+0

@AlexLockwood Darf ich wissen, was die 'SearchView' ist Ist das wie 'AutocomplteTextView' – Praveenkumar

Antwort

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

Ich spreche über SearchView, wo wir onClose(), onQueryTextChange (String newText), onQueryTextSubmit (String-Abfrage) überschreiben müssen. –

-3

im XML-Layout diese versuchen ..

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

Es kann Ihnen helfen ..

+0

Haben Sie gesehen, [Kommentar] (http://stackoverflow.com/questions/10914539/can-we-limit-the-number-of-character-in-edittext-of-searchview-in-android#comment14233570_10914539) – Praveenkumar

+0

In SearchView gibt es keine Zeichenlänge. –

+0

Suchansicht hat nicht "maxLength" –

3

Mit diesem Code es-Suche wird nur, wenn die Länge kleiner oder gleich 5 ist. Sie können es entsprechend ändern, indem Sie true von onQueryTextChange() zurückgeben, wenn text> 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

ich folgende Code-Schnipsel bin mit:

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