2012-06-06 26 views
6

Có api nào để đặt giới hạn không. số ký tự trong SearchView?Chúng tôi có thể giới hạn số lượng ký tự trong edittext của SearchView trong Android không?

+2

'thuộc tính XML Edittext' của' android: maxLength = 15' sẽ cho phép chỉ có 15 nhân vật. Đây có phải là bạn chỉ cần? – Praveenkumar

+0

Điều này có thể không hoạt động ... 'SearchView' không mở rộng' EditText'. Tôi biết rằng 'inputType' không hoạt động trên' SearchView' vì một lý do nào đó. –

+0

@AlexLockwood Tôi có thể biết 'SearchView' có giống như' AutocomplteTextView' – Praveenkumar

Trả lời

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

Tôi đang nói về SearchView nơi chúng ta phải ghi đè onClose(), onQueryTextChange (String newText), onQueryTextSubmit (String query). –

-3

Trong xml Layout thử này ..

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

Nó có thể giúp bạn ..

+0

Bạn đã thấy [Comment] này chưa (http://stackoverflow.com/questions/10914539/can-we-limit-the-number-of-character-in-edittext-of-searchview-in-android#comment14233570_10914539) – Praveenkumar

+0

Trong SearchView, không có gì để thiết lập độ dài ký tự. –

+0

Chế độ xem tìm kiếm không có "maxLength" –

3

Sử dụng mã này nó sẽ làm tìm kiếm chỉ khi chiều dài là ít hơn hoặc bằng 5. Bạn có thể làm cho nó thay đổi tương ứng như trả về true từ onQueryTextChange() khi 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

Tôi đang sử dụng đoạn mã sau:

TextView et = (TextView) searchView.findViewById(R.id.search_src_text); 
     et.setFilters(new InputFilter[]{new InputFilter.LengthFilter(10)}); 
Các vấn đề liên quan