【问题标题】:Only image text is showing from firebase in recyclerview fragment Image is not loading [duplicate]在recyclerview片段中仅显示来自firebase的图像文本图像未加载[重复]
【发布时间】:2020-04-24 10:21:27
【问题描述】:

我来自 firebase 的图像未显示在图像视图中,但图像的名称显示在上述回收器视图的文本视图中。这是我的代码,请帮忙。 片段活动

package com.example.bbeast.HomeActivity;

import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.example.bbeast.R;
import com.example.bbeast.Upload;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.database.FirebaseRecyclerOptions;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.squareup.picasso.Picasso;

import java.util.List;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

public class fragmentHealthTips extends Fragment {
    private RecyclerView mRecyclerView;
    private DatabaseReference mDataRef;
    private Uri mImageuri;





    View view;

    public void fragmentHealthTips() {

    }

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

        view = inflater.inflate(R.layout.healthtips_fragment, container, false);
        mRecyclerView =(RecyclerView)view.findViewById(R.id.healthtips_recyclerView);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
        mDataRef = FirebaseDatabase.getInstance().getReference().child("Uploads");
        return view;
    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseRecyclerOptions options =
                new FirebaseRecyclerOptions.Builder<HealthTips>()
                .setQuery(mDataRef, HealthTips.class)
                .build();
        FirebaseRecyclerAdapter<HealthTips, hViewHolder> adapter= new FirebaseRecyclerAdapter<HealthTips, hViewHolder>(options) {
            @Override
            protected void onBindViewHolder(@NonNull final hViewHolder holder, int i, @NonNull final HealthTips healthTips) {
//directly get the values like this
                String Iname = healthTips.getName();
                String Uimage = healthTips.getImage();
                holder.hName.setText(Iname);
                Picasso.get()
                        .load(Uimage)
                        .into(holder.hImageview);

            }

            @NonNull
            @Override
            public hViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
                View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.items_healthtips, parent, false);
                hViewHolder viewHolder = new hViewHolder(view);
                return viewHolder;
            }
        };
        mRecyclerView.setAdapter(adapter);
        adapter.startListening();

    }
    public static class hViewHolder extends RecyclerView.ViewHolder{
        TextView hName;
        ImageView hImageview;

        public hViewHolder(@NonNull View itemView) {
            super(itemView);
            hName = itemView.findViewById(R.id.healthtips_name);
            hImageview = itemView.findViewById(R.id.healthtips_imageView);

        }
    }

}

项目的 XML 文件。

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

        <TextView
            android:id="@+id/healthtips_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Name"
            android:textSize="30sp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="20dp"
            android:layout_marginBottom="20dp"/>
        <ImageView
            android:id="@+id/healthtips_imageView"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            android:layout_marginTop="20dp"
            android:background="@drawable/imageview_bg"/>


    </LinearLayout>



</androidx.cardview.widget.CardView>

模型类,Healthtips 活动。

package com.example.bbeast.HomeActivity;

import java.util.jar.Attributes;

public class HealthTips {
    public String name, image;

    public HealthTips(){


    }
    public HealthTips(String name, String image){
        this.name = name;
        this.image = image;

    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public String getImage(){
        return image;
    }
    public void setImage(String image){
        this.image= image;
    }


}

Gradle 依赖项。

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example.bbeast"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    dataBinding {
        enabled = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/main/java/Admin Activity', 'src/main/java/com.example.bbeast/ui.main/Admin Activity']
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'com.google.android.material:material:1.1.0'
    implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
    implementation 'com.google.firebase:firebase-database:16.0.4'
    implementation 'com.google.firebase:firebase-storage:16.0.4'
    implementation 'com.firebaseui:firebase-ui-database:3.2.2'
    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.firebase:firebase-analytics:16.0.5'
    implementation 'com.google.firebase:firebase-auth:16.0.5'
    implementation 'androidx.recyclerview:recyclerview:1.1.0'
    implementation 'com.squareup.picasso:picasso:2.71828'
    implementation 'com.squareup.picasso:picasso:2.6.0-SNAPSHOT'


}

请帮助我在图像视图中获取图像。提前谢谢你。

【问题讨论】:

    标签: javascript android html


    【解决方案1】:

    检查 UImage 的路径是有效路径,通常我会做这样的事情..

    P.S 不是 RecyclerView,但你明白了

        imageview1 = (ImageView) findViewById(R.id.imageview1);
    
        _path_child_listener = new ChildEventListener() {
            @Override
            public void onChildAdded(DataSnapshot _param1, String _param2) {
                GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
                final String _childKey = _param1.getKey();
                final HashMap<String, Object> _childValue = _param1.getValue(_ind);
                Glide.with(getApplicationContext()).load(Uri.parse(_childValue.get("imageUrl").toString())).into(imageview1);
                //imageUrl is pushed to Firebase Storage onUploadCompleted
            }
    
            @Override
            public void onChildChanged(DataSnapshot _param1, String _param2) {
                GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
                final String _childKey = _param1.getKey();
                final HashMap<String, Object> _childValue = _param1.getValue(_ind);
    
            }
    
            @Override
            public void onChildMoved(DataSnapshot _param1, String _param2) {
    
            }
    
            @Override
            public void onChildRemoved(DataSnapshot _param1) {
                GenericTypeIndicator<HashMap<String, Object>> _ind = new GenericTypeIndicator<HashMap<String, Object>>() {};
                final String _childKey = _param1.getKey();
                final HashMap<String, Object> _childValue = _param1.getValue(_ind);
    
            }
    
            @Override
            public void onCancelled(DatabaseError _param1) {
                final int _errorCode = _param1.getCode();
                final String _errorMessage = _param1.getMessage();
    
            }
        };
        path.addChildEventListener(_path_child_listener);
    }
    private void initializeLogic() {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-04
      • 1970-01-01
      • 2021-09-11
      • 2021-01-13
      • 1970-01-01
      相关资源
      最近更新 更多