2017-12-29 28 views
-2

FirebaseRecyclerAdapter를 사용하여 안드로이드 애플 리케이션에 데이터베이스 정보를 보려고하는데, populateViewHolder 메소드가 예상되는 곳에서 두 개의 다른 팝업이 나타납니다. 코드는 다음과 같습니다 :이 두 가지를 FirebaseReccylerAdapater 사용 후 과거로 예상되지 않은 onBindViewHolderFirebase가있는 RecyclerAdapter - populateViewHolder는 어디에 있습니까?

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter = 
      new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(

        NoteModel.class, 
        R.layout.single_note_layout, 
        NoteViewHolder.class, 
        fNotesDatabase 

      ) { 
       @Override 
       public NoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
        return null; 
       } 

       @Override 
       protected void onBindViewHolder(@NonNull NoteViewHolder holder, int position, @NonNull NoteModel model) { 

       } 
      }; 

} 

공공 NoteViewHolder 보호 무효가 등장하지 않았습니다. 나는 기대하고 있었다 :

protected void populateViewHolder (NoteViewHolder viewHolder, NoteModel model, int position) { 
} 

누구가 더 이상 사용할 수없는 아이디어가 있습니까? 코드를 완성하는 방법에 대해 잘 모릅니다. 추가 할 필요가 있습니다 ....

String noteId = getRef(position).getKey(); 

....하지만 어디에서 모릅니다.

미리 감사드립니다.

답변

1

FirebaseUI migration guide은 시작하기 좋은 장소입니다. 본질적으로 다음과 같이하려고합니다.

FirebaseRecyclerOptions<NoteModel> options = new FirebaseRecyclerOptions.Builder<>() 
     .setQuery(fNotesDatabase, NoteModel.class) 
     .build(); 

FirebaseRecyclerAdapter<NoteModel, NoteViewHolder> firebaseRecyclerAdapter = 
     new FirebaseRecyclerAdapter<NoteModel, NoteViewHolder>(options) { 
      @Override 
      public NoteViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
       return new NoteViewHolder(LayoutInflater.from(parent.getContext()) 
         .inflate(R.layout.single_note_layout, parent, false)); 
      } 

      @Override 
      protected void onBindViewHolder(@NonNull NoteViewHolder holder, 
              int position, 
              @NonNull NoteModel model) { 
       String key = getSnapshots().getSnapshot(position).getKey(); 
       holder.bind(...); 
      } 
     };