Адаптер не подключен;Пропуск макета с использованием recyclerView - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть база данных Firebase, из которой я извлекаю данные, но я просто не могу отобразить извлеченные данные (некоторый текст и изображение)

Это мой код во фрагменте:

public class Tab_0 extends Fragment {
RecyclerView mRecyclerView;
    FirebaseDatabase mFirebaseDataBase;
    DatabaseReference mRef;
    DatabaseReference mRefA;

    @SuppressLint("RestrictedApi")
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState){

        View view = inflater.inflate(R.layout.tab0,container,false);

        mRecyclerView = view.findViewById(R.id.recyclerview);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
    mRecyclerView.setHasFixedSize(true);

    mFirebaseDataBase = FirebaseDatabase.getInstance();
    mRef = FirebaseDatabase.getInstance().getReferenceFromUrl("--my url here--");
    mRef = mRef.child("pictures");

    FirebaseRecyclerAdapter<model,ViewHolder> FirebaseRecyclerAdapter = new FirebaseRecyclerAdapter<model,ViewHolder>(
                    model.class,
                    R.layout.card,
                    ViewHolder.class,
                    mRef
            ){
                @Override
                protected void populateViewHolder(ViewHolder viewHolder,model model,int position){
                    viewHolder.setDetails( getContext() , model.getImage());
                }
            };
    mRecyclerView.setAdapter(FirebaseRecyclerAdapter);

    return view;
}

и я получаю это от LogCat

Нет прикрепленного адаптера, пропускающий макет

У меня было это снаружи onCreateView метод, как предложено ранее (в другом вопросе здесь), но ничего

@Override
public void onStart(){
    super.onStart();
    FirebaseRecyclerAdapter<model,ViewHolder> FirebaseRecyclerAdapter =
            new FirebaseRecyclerAdapter<model,ViewHolder>(
                    model.class,
                    R.layout.card,
                    ViewHolder.class,
                    mRef
            ){
                @Override
                protected void populateViewHolder(ViewHolder viewHolder,model model,int position){
                    viewHolder.setImage( getContext() , model.getImage());
                }
            };
            mRecyclerView.setAdapter(FirebaseRecyclerAdapter);
}

, но ничего не показывает

viewHolder

public class ViewHolder extends RecyclerView.ViewHolder {


View mView;

public ViewHolder(@NonNull View itemView) {
    super(itemView);
    mView = itemView;
}

public void setDetails(Context ctx, String image){
    ImageView img = mView.findViewById(R.id.img);
    Picasso.get().load(image).into(img);
}}

Я устанавливаю метод получения и установки в классе модели (переменная, необходимая для класса держателя)

1 Ответ

0 голосов
/ 18 декабря 2018

Хорошо, я получил это

XML-файл tab_0 был таким:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

Решение состоит в том, что я не сделалдать ему контекст:

        tools:context=".Tab_0"

Спасибо StackOverFlowrs!

...