Android 搜索listview时忽略空格

Android 搜索listview时忽略空格,android,search,android-listview,Android,Search,Android Listview,我正在我的应用程序中使用编辑文本和列表视图。我实现了搜索功能,并将edittext设置为搜索栏。我正在使用TextWatcher即时检测更改。但是当我在edittext中键入空格时,所有listview项都消失了。那么,我如何忽略用户在编辑文本中键入的空格呢?: public class MainActivity extends FragmentActivity { final String[] data ={"Hydrogen","Helium","Lithium","Beryllium",

我正在我的应用程序中使用
编辑文本
列表视图
。我实现了搜索功能,并将
edittext
设置为搜索栏。我正在使用
TextWatcher
即时检测更改。但是当我在
edittext
中键入空格时,所有
listview
项都消失了。那么,我如何忽略用户在
编辑文本中键入的空格呢?:

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));

  }
}
public类MainActivity扩展了FragmentActivity{
最终字符串[]数据={“氢”、“氦”、“锂”、“铍”、“硼”、“碳”、“氮”、“氧”、“氟”、“氮”、“钠”、“镁”、“铝”、“硅”、“磷”、“硫”、“氯”、“氩”、“钾”、“钙”、“钪”、“钛”、“钒”、“铬”、“锰”、“铁”、“钴”、“镍”、“铜”、“锌”、“镓”、“锗”,“砷”、“硒”、“溴”、“氪”、“铷”、“锶”、“钇”、“锆”、“铌”、“钼”、“锝”、“钌”、“铑”、“钯”、“银”、“镉”、“铟”、“锡”、“锑”、“碲”,
“碘、氙、铯、钡、镧、铈、镨、钕、镨、镨、钕、镨、钐、铕、钆、铽、镝、钬、铒、铥、镱、镥、铪、钽、钨、铼、锇、铱、铂、金、汞、铊、铅、铋、钋、阿斯汀”氡、弗朗、镭、锕、钍、锕、铀、镎、钚、镅、铯、铍、加利福尼亚、爱因斯坦、费米、门捷列维、诺贝尔、镧、钌、钌、铷、硼、硼、铍、,
“Meitnerium”、“Darmstaditium”、“Roentgenium”、“Copernicium”、“unontrium”、“Ununquadium”、“ununnpentium”、“ununhenhexium”、“unununoptium”、“unonoctium”};
阵列适配器;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数据);
最终EditText搜索栏=(EditText)findViewById(R.id.searchBar);
最终抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
最终ListView导航列表=(ListView)findViewById(R.id.left_抽屉);
最终线性布局线性布局=(线性布局)findViewById(R.id.左抽屉布局);
设置适配器(适配器);
addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列cs、int arg1、int arg2、int arg3){
//当用户更改文本时
MainActivity.this.adapter.getFilter().filter(cs);
}
@凌驾
更改前的公共void(字符序列arg0、int arg1、int arg2、,
int arg3){
}
@凌驾
public void PostTextChanged(可编辑arg0){
}
});
setOnScrollListener(新的AbsListView.OnScrollListener(){
公共无效onScrollStateChanged(AbsListView视图,int scrollState){
//隐藏键盘
InputMethodManager imm=(InputMethodManager)getSystemService(Context.INPUT\u方法\u服务);
imm.hideSoftInputFromWindow(navList.getWindowToken(),0);
}
public void onScroll(AbsListView视图、int firstVisibleItem、int visibleItemCount、int totalItemCount){
}
});
setEmptyView(findViewById(R.id.empty));
}
}

只是一个未实现的逻辑,请尝试

 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);
…请点击此链接。。