Используется база данных Picasso и Firebase, но нет изображений E / RecyclerView: адаптер не подключен; пропускающий макет - PullRequest
0 голосов
/ 22 апреля 2020

Используется Picasso для получения изображений из базы данных Firebase

Используется Recycler View Для отображения изображений в ImageView И Textview Для отображения текста

Имя TextView по умолчанию ::: Без имени

Текст отображается, но изображения не

Прикрепленный снимок экрана

Снимок экрана из Android Studio :::::::: E / RecyclerView: Адаптер не подключен; пропускающий макет

ImagesActivity. java

 public class ImagesActivity extends AppCompatActivity {
 private RecyclerView mRecyclerView;
 private ImageAdapter mAdapter;
 private List<Upload> mUploads;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);

 requestWindowFeature(Window.FEATURE_NO_TITLE);
 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
 WindowManager.LayoutParams.FLAG_FULLSCREEN);

 setContentView(R.layout.activity_images);

  mRecyclerView = findViewById(R.id.Recycler_View);
  mRecyclerView.setHasFixedSize(true);

  RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());

  mRecyclerView.setLayoutManager(layoutManager);



  mUploads = new ArrayList<>();


  DatabaseReference mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads");


 mDatabaseRef.addValueEventListener(new ValueEventListener() {
  @Override
 public void onDataChange(@NonNull DataSnapshot dataSnapshot) {


 for (DataSnapshot postSnapshot : dataSnapshot.getChildren()){
 Upload upload= postSnapshot.getValue(Upload.class);
 mUploads.add(upload);
           }



   mAdapter = new ImageAdapter(ImagesActivity.this, mUploads);

   mRecyclerView.setAdapter(mAdapter);

        }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {

    Toast.makeText(ImagesActivity.this,databaseError.getMessage(),Toast.LENGTH_SHORT).show();


        }
     });



       }


    }

build.gradle (: приложение)

зависимости

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'


implementation 'androidx.cardview:cardview:1.0.0'

implementation 'androidx.recyclerview:recyclerview:1.1.0'


implementation 'com.squareup.picasso:picasso:2.71828'


implementation 'com.google.firebase:firebase-auth:19.3.0'
implementation 'com.google.firebase:firebase-database:19.2.1'
implementation 'com.google.firebase:firebase-storage:19.1.1'
implementation 'com.google.android.gms:play-services-auth:18.0.0'


testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'

AndroidManifest. xml

<uses-permission android:name="android.permission.INTERNET" />

ImageAdpter. java

public class ImageAdapter extends RecyclerView.Adapter <ImageAdapter.ImageViewHolder> {

private Context mContext;
private List<Upload> mUploads;

ImageAdapter(Context context, List<Upload> uploads){
    mContext = context;
    mUploads = uploads;


    }


  @NonNull
  @Override
  public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(mContext).inflate(R.layout.image_item,parent,false);
    return new ImageViewHolder(v);
   }


  @Override
  public void onBindViewHolder(@NonNull ImageViewHolder holder, int position) {


    Upload uploadCurrent = mUploads.get(position);


    holder.textViewName.setText(uploadCurrent.getName());




    Picasso.get()
            .load(uploadCurrent.getImageUrl())
            .fit()
            .centerCrop()
            .into(holder.imageView);



   }


@Override
public int getItemCount() {
    return mUploads.size();
  }

static class ImageViewHolder extends RecyclerView.ViewHolder{

    TextView textViewName;

    ImageView imageView;


    ImageViewHolder(@NonNull View itemView) {
        super(itemView);

        textViewName = itemView.findViewById(R.id.text_view_name);
        imageView = itemView.findViewById(R.id.image_view_upload);
    }


   }





}

activity_images. xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ImagesActivity">


<androidx.recyclerview.widget.RecyclerView


    android:id="@+id/Recycler_View"
    android:layout_width="match_parent"
    android:layout_height="match_parent"


    android:layout_marginStart="8dp"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginRight="8dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"


    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="1.0" />


   </androidx.constraintlayout.widget.ConstraintLayout>

image_item. xml

<?xml version="1.0" encoding="utf-8"?>
 <androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp">


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:ignore="UseCompoundDrawables">

    <TextView
        android:id="@+id/text_view_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="8dp"
        android:text="@string/name"
        android:textColor="@android:color/black"
        android:textSize="20sp" />

    <ImageView
        android:id="@+id/image_view_upload"
        android:layout_width="400dp"
        android:layout_height="200dp"
        android:contentDescription="TODO" />

   </LinearLayout>




</androidx.cardview.widget.CardView>
...