0

我正在使用自己的数据库并获取特定的列并显示列表视图。这里使用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) {                   
    }
}); 

我的问题是:当我在编辑文本中搜索数据时,只有特定的数据可见,否则我的列表视图中没有数据显示如何在这里解决我的问题。

在这里搜索时间数据像这样可见,否则没有数据可见

这里搜索时间数据像这样可见,否则没有数据可见

我希望这个没有搜索在列表视图中没有可见的数据:

在此处输入图像描述

但这里的数据是这样可见的:

在此处输入图像描述

4

4 回答 4

1

这就是FilterSearch之间的区别。您正在过滤数据,没有应用过滤器,一切都被选中。setVisibility(GONE)最简单的方法是在空ListView时调用。TextView或者,当 switch 设置为 true 时,您可以放置​​一个boolean开关Adapter以将项目计数返回为 0。

于 2013-02-07T05:41:30.863 回答
0

仅将以下内容添加到您的 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);
            }
        }
于 2014-05-07T05:18:32.020 回答
0

在 xml 中将以下内容添加到您的列表视图中

android:cacheColorHint="#00000000"
于 2013-10-30T06:55:01.550 回答
0

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

@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);
        }
    }
于 2014-05-07T05:26:12.240 回答