2017-07-13 13 views
0

ここに私のコードです。私はそれが "456"を含むデータを見つけることに成功したことをテストしましたが、それを私のアダプターに追加できません。Androidスタジオファイアベースマッチャー&アダプター

myRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for (DataSnapshot ds : dataSnapshot.getChildren()){ 
        String find = ds.child("titles").getValue().toString(); 
        Pattern pattern = Pattern.compile(".*456.*"); 
        Matcher matcher = pattern.matcher(find); 
        adapter.add(matcher.group()); 

      } 
     } 
     @Override 
     public void onCancelled(DatabaseError error) { 
      Log.w(TAG, "Failed to read value.", error.toException()); 
     } 
    }); 

誤ったメッセージは次のとおりです。

com.example.user.ideal.List $ 2.onDataChange(List.java:86)で 86:adapter.add(matcher.group() );

答えて

0

ほとんどの場合、データはアダプタに追加されますが、アダプタはそのビューを更新する必要があることを認識しません。それを行うには、完了したらadapter.notifyDataSetChanged()に電話してください:

public void onDataChange(DataSnapshot dataSnapshot) { 
     for (DataSnapshot ds : dataSnapshot.getChildren()){ 
       String find = ds.child("titles").getValue().toString(); 
       Pattern pattern = Pattern.compile(".*456.*"); 
       Matcher matcher = pattern.matcher(find); 
       adapter.add(matcher.group()); 
     } 
     adapter.notifyDataSetChanged() 
    } 
+0

私はそれを追加しましたが、それは同じ間違ったメッセージです。 –

+0

ああ、私はエラーメッセージを見ていない。完全なスタックトレースと例外メッセージを含めるように質問を編集してください。 –

関連する問題