2017-11-13 14 views
0

entity.about = "phone"test = "phone"を入力すると検索リストが更新されますが、entity.about = "this is phone"test = "phone"を入力すると検索リストは更新されません。Java if-else strings。does not working error

public void onSearchConfirmed(final CharSequence text) { 
    productsRef = FirebaseDatabase.getInstance().getReference("products"); 
    searchList.clear(); 
    final String test = text.toString(); 
    productsRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for(DataSnapshot postSnapshot : dataSnapshot.getChildren()) { 
       ProductEntity entity = postSnapshot.getValue(ProductEntity.class); 
       if(entity.about.contains(test) || entity.vendor_address.contains(test)) { 
        searchList.add(entity) ; 
       } 
      } 
     } 
    } 
} 
+0

問題の再現可能な例を投稿できますか?説明していることは起こってはいけません。 –

+0

conditionの前にentity.aboutとtest valueを出力してから、実行前に実際の値を確認してください。 –

+0

見つけました。それは私が検索する前に.tolowercaseを追加しなかったためです。 –

答えて

0

entity.about.toLowerCase.contains(test)で。これは私がする必要があるものです:

final String test = text.toString().toLowerCase() ; 
    productsRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for(DataSnapshot postSnapshot : dataSnapshot.getChildren()) { 
       ProductEntity entity = postSnapshot.getValue(ProductEntity.class); 
       if(entity.about.toLowerCase().contains(test) || entity.vendor_address.toLowerCase().contains(test)) { 
        searchList.add(entity) ; 
       } 
      } 
1

コードを置き換えます。entity.about.contains(test)私は実際に大文字と小文字を区別しているStringクラス内の関数が含まれているという事実を考慮していない間違って何をやっていた