2012-06-06 74 views
6

是否有任何API設置限制沒有。 SearchView中的字符?我們可以限制Android中SearchView的edittext中字符的數量嗎?

+2

'Edittext'的XML屬性'機器人:最大長度= 15'將只允許15字符。這只是你需要嗎? – Praveenkumar

+0

這可能不起作用...'SearchView'不會擴展'EditText'。我知道'inputType'由於某種原因在'SearchView'上不起作用。 –

+0

@AlexLockwood我可以知道什麼是'SearchView'就像'AutocomplteTextView' – Praveenkumar

回答

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

我在說我們必須覆蓋onClose(),onQueryTextChange(字符串newText),onQueryTextSubmit(字符串查詢)的SearchView。 –

-3

在XML佈局試試這個..

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

它可以幫助你..

+0

你見過這個[評論](http://stackoverflow.com/questions/10914539/can-we-limit-the-number-of-character-in-edittext-of-searchview-in-android#comment14233570_10914539) – Praveenkumar

+0

在SearchView中沒有設置字符長度。 –

+0

搜索視圖沒有「maxLength」 –

3

使用此代碼,它會做搜索僅在長度小於或等於5。您可以相應地進行更改,例如在text> 5時從onQueryTextChange()返回true。

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

我使用下面的代碼片段:

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