2017-07-08 9 views
1

のフィルタJSONリストビュー、私はリストビューが空白になり、いくつかのテキストを入力するたび、誰も私が間違ってやっているものを私に伝えることができ、どのように私はこののEditTextと私のリストビューをフィルタリングしようとするのEditTextのAndroid

search.addTextChangedListener(new TextWatcher(){ 
    public void afterTextChanged(Editable arg0) { 
     // TODO Auto-generated method stub 

    } 

    public void beforeTextChanged(CharSequence arg0, int arg1, 
    int arg2, int arg3) { 
     // TODO Auto-generated method stub 

    } 

    public void onTextChanged(CharSequence cs, int arg1, int arg2, 
    int arg3) { 
     // TODO Auto-generated method stub 



     String searchString = cs.toString();//wsSearch.getText().toString(); 
     /* if(searchString.length() != 2) { 
      adapter2 = new Adapter(MainActivity.this, array); 
      listView.setAdapter(adapter2); 
      return; 
     }*/ 
     for (int i = 0; i < array.size(); i++) 
     { 
      String currentString = array.get(i).getTitulo(); 
      if (searchString.equalsIgnoreCase(currentString)) 
      { 
       mTemp.add(array.get(i)); 
      } 
     } 
     adapter2 = new Adapter(MainActivity.this, mTemp); 
     listView.setAdapter(adapter2); 

    } 



}); 
} 
を解決することができます

答えて

0

これを試してみてください:

search.addTextChangedListener(new TextWatcher(){ 
     public void afterTextChanged(Editable arg0) { 
      // TODO Auto-generated method stub 
      String searchString = arg0.toString();//wsSearch.getText().toString(); 
    /* if(searchString.length() != 2) { 
     adapter2 = new Adapter(MainActivity.this, array); 
     listView.setAdapter(adapter2); 
     return; 
    }*/  
      mTemp.clear() 
      for (int i = 0; i < array.size(); i++) 
      { 
       String currentString = array.get(i).getTitulo(); 
       if (currentString.contains(searchString)) 
       { 
        mTemp.add(array.get(i)); 
       } 
      } 
      adapter2 = new Adapter(MainActivity.this, mTemp); 
      listView.setAdapter(adapter2); 

     } 

     public void beforeTextChanged(CharSequence arg0, int arg1, 
             int arg2, int arg3) { 
      // TODO Auto-generated method stub 

     } 

     public void onTextChanged(CharSequence cs, int arg1, int arg2, 
            int arg3) { 
      // TODO Auto-generated method stub 
      //BAPTISMAL_SONG.this.adapter2.getFilter().filter(cs); 




     } 



    }); 

は、この情報がお役に立てば幸いです。

+0

私は製品名を入力すると、フィルタリングされますが、同じ製品がリストビューに5倍表示されます。テキストを削除して新しいものを追加すると、それらの5つが保持され、 – CodePT

+0

私は答えを編集します。私はリストをクリアするのを忘れてしまった。 –

+0

あなたが正しい答えを見つけたら、それを正しいものとしてマークし、それをアップボートしてください。これを行うには多くの努力が必要でした。 :D –

関連する問題