滑行未显示图像

问题描述 投票:-1回答:1

我正在尝试将图像从Firebase存储加载到imageView,但是什么都没有显示。我正在使用recyler视图,也可以滑动以加载图像。我从4run收到此消息,说“加载失败,大小为[0x0],null类com.bumptech.glide.load.engine.GlideException:收到空模型。“

Database Structure

下面是我的代码,有人可以帮我解决这个问题。

    //Adapter class
    public class AdapterOne extends RecyclerView.Adapter<AdapterOne.ViewHolder> {

    Context context;
    List<ImageUploadInfo> MainImageUploadInforList;

    public AdapterOne(Context context,List<ImageUploadInfo> TempList){
        this.MainImageUploadInforList=TempList;
        this.context=context;

    }

    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

        View view=LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview,parent,false);
        ViewHolder viewHolder=new ViewHolder(view);
        return viewHolder;
       // return null;
    }

    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
        ImageUploadInfo uploadInfo=MainImageUploadInforList.get(position);

        //holder.imageNameTextView.setText(uploadInfo.getImageName());

        //loading image with glide libary
        Glide.with(context).load(uploadInfo.getImageUrl()).into(holder.imageView);

    }

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

    public class ViewHolder extends RecyclerView.ViewHolder {

        public ImageView imageView;
        //public TextView imageNameTextView;
        public ViewHolder(@NonNull View itemView) {
            super(itemView);

            imageView=(ImageView) itemView.findViewById(R.id.imageview);
            //imageNameTextView=(TextView) itemView.findViewById(R.id.imagename);

        }
    }
}


    //This class if for information about the image
      public class ImageUploadInfo {

    public String imageName;
    public String imageUrl;

    public ImageUploadInfo(){

    }

    public ImageUploadInfo(String name, String url){

        this.imageName=name;
        this.imageUrl=url;

    }

    public String getImageName(){
        return imageName;

    }

    public String getImageUrl(){

        return imageUrl;
    }

}

     //This is the users profile class where all of the images that they download will be displayed 

     public class ProfileActivity extends AppCompatActivity {

    FirebaseAuth firebaseAuth;
    TextView name;
    DatabaseReference ref;
    RecyclerView recyclerView;
    AdapterOne adapter1;

    RecyclerView.Adapter adapter;

    List<ImageUploadInfo> list=new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_profile);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);
        overridePendingTransition(R.anim.slide_right, R.anim.slide_left);

        recyclerView=findViewById(R.id.recyclerView);

        //set size of recykcer view

        recyclerView.setHasFixedSize(true);

        //setting recyclerview as lineralayout
        recyclerView.setLayoutManager(new LinearLayoutManager(ProfileActivity.this));


        firebaseAuth=FirebaseAuth.getInstance();

        ref= FirebaseDatabase.getInstance().getReference("Users");

        //String UID=FirebaseAuth.getInstance().getCurrentUser().getUid();


        FirebaseUser firebaseUser=firebaseAuth.getCurrentUser();


       if(firebaseUser!=null){
           String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
           DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
           DatabaseReference uidRef = rootRef.child("Users").child(uid);
           DatabaseReference refref = rootRef.child("Users/images").child(uid);
           ValueEventListener valueEventListener=new ValueEventListener() {
               @Override
               public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

                   String txt_firstname = dataSnapshot.child("firstname").getValue(String.class);
                   Toast.makeText(ProfileActivity.this,"Hi " + txt_firstname,Toast.LENGTH_LONG).show();

               }

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

               }
           };

           uidRef.addListenerForSingleValueEvent(valueEventListener);

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

                   ImageUploadInfo info=dataSnapshot.getValue(ImageUploadInfo.class);
                   list.add(info);
                   adapter=new AdapterOne(ProfileActivity.this,list);
                   recyclerView.setAdapter(adapter);

               }


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

               }


           });
           //refref.addListenerForSingleValueEvent(ValueEventListener);


       }


       else{

           Intent i = new Intent(ProfileActivity.this, MainActivity.class);
           //i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
           startActivity(i);

       }




    }
}
android firebase-realtime-database firebase-authentication firebase-storage android-glide
1个回答
0
投票

您用于获取图像的模型类与图像节点不同。

每个用户

 String image_url = dataSnapshot.child("images").getValue().toString;

或根据您在firebase中设置的密钥来更新您的模型。

© www.soinside.com 2019 - 2024. All rights reserved.