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

私の質問は:編集テキストでデータを検索すると、特定のデータのみが表示され、それ以外の場合はリストビューにデータが表示されず、ここで問題を解決する方法.

ここでは、このように表示される時間データを検索します othe 賢明なデータは表示されません

ここでは、このように表示される時間データを検索します。それ以外の場合、データは表示されません

リストビューにデータが表示されないようにするには、次のようにします。

ここに画像の説明を入力

しかし、ここでデータは次のように表示されます:

ここに画像の説明を入力

4

4 に答える 4

1

それがFilterSearchの違いです。フィルタを適用せずにデータをフィルタリングしています。すべてが選択されています。が空setVisibility(GONE)ListViewときに呼び出すのが最も簡単です。TextViewまたは、スイッチが true に設定されている場合、アイテム カウントを 0 として返すようにbooleanスイッチを配置できます。Adapter

于 2013-02-07T05:41:30.863 に答える
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 に答える
0

xml のリストビューに以下を追加します

android:cacheColorHint="#00000000"
于 2013-10-30T06:55:01.550 に答える