Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android如何隐藏我的listview?_Java_Android_Listview_Search - Fatal编程技术网

Java Android如何隐藏我的listview?

Java Android如何隐藏我的listview?,java,android,listview,search,Java,Android,Listview,Search,我使用自己的数据库,获取特定列和显示列表视图。这里使用如下方法使用addTextChangedListener: adapter = new ArrayAdapter<String>(this, R.layout.main , R.id.product_name, optionlist); listview.setAdapter(adapter); inputSearch.addTextChangedListener(new TextWatcher() { @O

我使用自己的数据库,获取特定列和显示列表视图。这里使用如下方法使用
addTextChangedListener

adapter = new ArrayAdapter<String>(this, R.layout.main , R.id.product_name, optionlist);
    listview.setAdapter(adapter); 

 inputSearch.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) {                   
    }
}); 
adapter=newarrayadapter(这个,R.layout.main,R.id.product\u name,optionlist);
setAdapter(适配器);
inputSearch.addTextChangedListener(新的TextWatcher(){
@凌驾
public void onTextChanged(字符序列cs、int arg1、int arg2、int arg3){
//当用户更改文本时
MainActivity.this.adapter.getFilter().filter(cs);
}    
@凌驾
public void beforeTextChanged(字符序列arg0、int arg1、int arg2、int arg3){
}               
@凌驾
public void PostTextChanged(可编辑arg0){
}
}); 
我的问题是:当我在编辑文本中搜索数据时,此时只有特定数据可见,其他方面没有数据显示在我的listview中,如何解决我的问题

此处搜索时间数据可见,如下图所示,否则没有数据可见

我希望此无搜索列表视图中无可见数据:

但这里的数据如下所示:


这就是筛选和搜索之间的区别。您正在筛选数据,没有应用任何筛选器,所有内容都已选中。当
TextView
为空时,最简单的方法是在
ListView
上调用
setVisibility(GONE)
。或者,当开关设置为true时,您可以在
适配器
中放置一个
布尔
开关,以将项目计数返回为0。

将以下内容以xml格式添加到listview中

android:cacheColorHint="#00000000"

仅将以下内容添加到java类:

@Override
        public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
            // When user changed the Text

            lv.setVisibility(View.VISIBLE);
            MainActivity.this.adapter.getFilter().filter(cs);
            String str = inputSearch.getText().toString();
            if (str.equals("")) {
                lv.setVisibility(View.GONE);
            }
        }

最好清除适配器并将空字符串设置为adapter

@Override
    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) {
        // When user changed the Text

        lv.setVisibility(View.VISIBLE);
        MainActivity.this.adapter.getFilter().filter(cs);
        String str = inputSearch.getText().toString();
        if (str.equals("")) 
        {
            List<String> list = new ArrayList<String>();
            list.add("");
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(TestSpinner.this,R.layout.spinner_item,list);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            listView.setAdapter(adapter);
        }
    }
@覆盖
public void onTextChanged(字符序列cs、int arg1、int arg2、int arg3){
//当用户更改文本时
lv.setVisibility(视图可见);
MainActivity.this.adapter.getFilter().filter(cs);
String str=inputSearch.getText().toString();
if(str.equals(“”)
{
列表=新的ArrayList();
列表。添加(“”);
ArrayAdapter=新的ArrayAdapter(TestSpinner.this,R.layout.spinner\u项,列表);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
setAdapter(适配器);
}
}

清除适配器比隐藏listview更好。