2014-01-25 2 views
1

edittextlistview을 내 앱에 사용하고 있습니다. 검색 기능을 구현하고 edittext 검색 창을 만들었습니다. 변경 내용을 즉시 감지하려면 TextWatcher을 사용하고 있습니다. 그러나 edittext에 공간을 입력하면 모든 listview 항목이 사라집니다. ? 그럼, 어떻게 내가 edittext에 사용자가 입력 한 공백을 무시 수행
목록보기를 검색하는 동안 공백을 무시합니다.

public class MainActivity extends FragmentActivity { 

final String[] data ={"Hydrogen","Helium","Lithium","Beryllium","Boron","Carbon","Nitrogen","Oxygen","Flourine","Noen","Sodium","Magnesium","Aluminium","Silicon","Phosphorous","Sulphur","Chlorine","Argon","Potassium","Calcium","Scandium","Titanium","Vanadium","Chromium","Manganese","Iron","Cobalt","Nickel","Copper","Zinc","Gallium","Germanium","Arsenic","Selenium","Bromine","Krypton","Rubidium","Strontium","Yttrium","Zirconium","Niobium","Molybdenum","Technetium","Ruthenium","Rhodium","Palladium","Silver","Cadmium","Indium","Tin","Antimony","Tellurium", 
     "Iodine","Xenon","Caesium","Barium","Lanthanum","Cerium","Praseodymium","Neodymium","Promethium","Samarium","Europium","gadoliium","Terbium","Dysprosium","Holmium","Erbium","Thulium","Ytterbium","Lutetium","Hafnium","Tantalum","Tungsten","Rhenium","Osmium","Iridium","Platinum","Gold","Mercury","Thallium","Lead","Bismuth","Polonium","Astatine","Radon","Francium","Radium","Actinium","Thorium","Protactinium","Uranium","Neptunium","Plutonium","Americium","Curium","Berkelium","Californium","Einstenium","Fermium","Mendelevium","Nobelium","Lawrencium","Rutherfordium","Dubnium","Seaborgium","Bohrium","Hassium", 
     "Meitnerium","Darmstadtium","Roentgenium","Copernicium","Ununtrium","Ununquadium","Ununpentium","Ununhexium","Ununseptium","Ununoctium"}; 

ArrayAdapter<String> adapter; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); 
    final EditText searchBar = (EditText) findViewById(R.id.searchbar); 
    final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout); 
    final ListView navList = (ListView) findViewById(R.id.left_drawer); 
    final LinearLayout linearLayout = (LinearLayout)findViewById(R.id.left_drawer_layout); 
    navList.setAdapter(adapter); 

    searchBar.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      // When user changed the Text 
      MainActivity.this.adapter.getFilter().filter(cs); 
     } 

     @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, 
             int arg3) { 

     } 

     @Override 
     public void afterTextChanged(Editable arg0) { 
     } 
    }); 

    navList.setOnScrollListener(new AbsListView.OnScrollListener() { 
     public void onScrollStateChanged(AbsListView view, int scrollState) { 
      //hide keyboard 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(navList.getWindowToken(), 0); 
     } 

     public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { 
     } 
    }); 

    navList.setEmptyView(findViewById(R.id.empty)); 

    } 
} 
+0

에 시도 할 구현 단지 논리 http://stackoverflow.com/questions/21226155/how-to-dynamic-change-the-list-items-autocompletetextvi/21226570 # 21226570 ...이 링크를 클릭하십시오. –

답변

0

하지

onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 

     convert the cs to string replace space(" ") with "" and then MainActivity.this.adapter.getFilter().filter(cs); 
관련 문제