Почему список друзей в моей Java-программе не отображается? - PullRequest
0 голосов
/ 06 февраля 2019

Фрагмент списка друзей

public class FriendsFragment extends Fragment {


private RecyclerView mFriendList;

private DatabaseReference mFriendsDatabase;

private FirebaseAuth mAuth;

private String mCurrent_user_id;

private View mMainView;

private String user_id;

public FriendsFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

   mMainView = inflater.inflate(R.layout.fragment_friends, container, false);

   mFriendList = (RecyclerView) mMainView.findViewById(R.id.listfriends);
   mCurrent_user_id = mAuth.getCurrentUser().getUid();

// Путь

   mFriendsDatabase = FirebaseDatabase.getInstance().getReference().child("Friends").child(mCurrent_user_id);

// Recycler View

   mFriendList.setHasFixedSize(true);
   mFriendList.setLayoutManager(new LinearLayoutManager(getContext()));

// Возврат основного просмотра

   return mMainView;


}

// При запуске

@Override
public void onStart() {
    super.onStart();
    FirebaseRecyclerOptions<Friends> options =
            new FirebaseRecyclerOptions.Builder<Friends>()
                    .setQuery(mFriendsDatabase,Friends.class)
                    .setLifecycleOwner(this)
                    .build();

    FirebaseRecyclerAdapter<Friends, FriendsViewHolder> friendsRecyclerViewAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(options){

        @NonNull
        @Override
        public FriendsViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            return new FriendsViewHolder(LayoutInflater.from(viewGroup.getContext())
                    .inflate(R.layout.friendlist, viewGroup, false));
        }

        @Override
        protected void onBindViewHolder(@NonNull FriendsViewHolder holder, int position, @NonNull Friends model) {

            holder.setDate(model.getDate());

            //Will get data from user choosen
            //final String user_id = getRef(position).getKey();

        }
    };

    mFriendList.setAdapter(friendsRecyclerViewAdapter);

}

// Конец метода onStart

public static class FriendsViewHolder extends RecyclerView.ViewHolder{

    View mView;

    public FriendsViewHolder(@NonNull View itemView) {
        super(itemView);

        mView = itemView;
    }

    public void setDate(String date){
        TextView dateOfFriend=(TextView) mView.findViewById(R.id.friend_single_status);
        dateOfFriend.setText(date);
    }

}
}

// Класс друзей, куда я иду, получает строковые данные

public class Friends {

public String date;

public Friends(){

}

public Friends(String date) {
    this.date = date;
}

public String getDate() {
    return date;
}

public void setDate(String date) {
    this.date = date;
}
}

Изображение структуры базы данных Firebase:

введите описание изображения здесь

Я не знаю, в чем проблема.Я новичок в Android.

1 Ответ

0 голосов
/ 06 февраля 2019

Вы не устанавливаете адаптер для RecyclerView.

mRV.setLayoutManager(new LinearLayoutManager(getContext()); 
mRV.setAdapter(new MyAdapterRV());

В вашем методе onStart () есть адаптер.Сделайте его глобальным, то есть общедоступным, и добавьте строку в onCreateView ()

mFriendList.setAdapter(friendsRecyclerViewAdapter);

Подробнее о представлениях Recycler: В Android, если вы хотите отобразить длинный список, вы можете использовать переработчикПосмотреть.RecyclerView будет раздувать (создавать) дочерние представления и управлять прокруткой вверх и вниз по списку.Представлению рециркулятора нужно 4 вещи:

  1. Ссылка из файла макета
  2. Менеджер по расположению, сообщающий ему, как отображать дочерние представления (Ваш код использует LinearLayoutManager, который будет отображать каждый элементодин под другим в вертикальном списке)
  3. Адаптер, который может взять фактические данные (ваш список друзей) и назначить (связать) их дочернему представлению внутри RecyclerView
  4. Класс ViewHolder, которыйбудет хранить ссылку каждого дочернего представления
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...