0

모두를 사용하여로드지고 있지 않지만 이미지는 그녀의 이미지의 값입니다이미지가 잘 작동 firebaseRecyclerAdapter

this image from emulator

this image display the value log of image-getimgUrl

this image frome firebase database

문제로드되지 않아요 및 getimgUrl = NULL

공용 클래스 MainScreen는 3.7.0 버전 라이브러리 대신 피카소의 AppCompatActivity {

RecyclerView recyclerView; 
DatabaseReference mRef; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_screen); 


    recyclerView = (RecyclerView)findViewById(R.id.recyclerView_main); 
    recyclerView.setHasFixedSize(true); 
    recyclerView.setLayoutManager(new LinearLayoutManager(getBaseContext())); 


    mRef = FirebaseDatabase.getInstance().getReference("Data"); 

    FirebaseRecyclerAdapter<Model,mViewHolder> adapter = 
      new FirebaseRecyclerAdapter<Model, mViewHolder>(Model.class,R.layout.row,mViewHolder.class,mRef) { 
     @Override 
     protected void populateViewHolder(mViewHolder viewHolder, Model model, int position) { 

      viewHolder.setTitle(model.getTitle()); 
      viewHolder.setImage(getBaseContext(),model.getImgUrl()); 

      Log.e("getImgUrl", "value : "+model.getImgUrl()); 
      Log.e("getTitle", "value : "+model.getTitle()); 
     } 
    }; 

    recyclerView.setAdapter(adapter); 
} 


public static class mViewHolder extends RecyclerView.ViewHolder{ 
    View mview; 

    public mViewHolder(View itemView) { 
     super(itemView); 


     mview = itemView; 

    } 


    public void setTitle(String title){ 

     TextView postTitle = (TextView) mview.findViewById(R.id.text_row); 
     postTitle.setText(title); 

     Log.e("title", "value : "+title); 
     } 
    public void setImage(Context ctx,String image){ 

     ImageView postImage = (ImageView) mview.findViewById(R.id.image_row); 

     Picasso.with(ctx).load(image).into(postImage); 

     Log.e("image", "value : "+image); 
    } 
} 

}

+0

'RÉPONDRE'는 무엇을 의미합니까? –

+0

작성한 실수 없음 –

+0

그런데 질문을 수정할 수 있습니다. –

답변

0

itemViewcontext intead를 사용합니다. 이것을 시도하십시오 :

public final class Model { 
    // Excluding these fields because proguard can make them public 
    @Exclude private String mTitle; 
    @Exclude private String mImage; 

    public Model() { 
     // Needed for Firebase 
    } 

    @Keep 
    public String getTitle() { 
     return mTitle; 
    } 

    @Keep 
    public void setTitle(String title) { 
     mTitle = title; 
    } 

    @Keep 
    public String getImage() { 
     return mImage; 
    } 

    // The "image" part of `setImage` needs to match what it's called in your database. 
    // Or you could use `@PropertyName("nameInTheDatabase")` 
    @Keep 
    public void setImage(String image) { 
     mImage = image; 
    } 

    @Override 
    public boolean equals(Object o) { 
     if (this == o) return true; 
     if (o == null || getClass() != o.getClass()) return false; 

     Model model = (Model) o; 

     return (mTitle == null ? model.mTitle == null : mTitle.equals(model.mTitle)) 
       && (mImage == null ? model.mImage == null : mImage.equals(model.mImage)); 
    } 

    @Override 
    public int hashCode() { 
     int result = mTitle == null ? 0 : mTitle.hashCode(); 
     result = 31 * result + (mImage == null ? 0 : mImage.hashCode()); 
     return result; 
    } 

    @Override 
    public String toString() { 
     return "Model{" + 
       "mTitle='" + mTitle + '\'' + 
       ", mImage='" + mImage + '\'' + 
       '}'; 
    } 
} 
+0

완전하게 일하는 thx 남자 : D –

+0

굉장한, 돕게 기쁜! – SUPERCILEX

0

사용 글라이드를 확장하고 당신의 모델이 잘못 ApplicationContext

public void setImage(String imageUrl){ 

    ImageView post_image = (ImageView) mview.findViewById(R.id.imageViewCardRow); 

    Glide.with(mview.getContext).load(imageUrl).into(post_image); 
} 
+0

이 해결책을위한 thx 그러나 아직도 작동하지 않아 –