2017-02-15 28 views
1

私はAndroidプログラミングを開始しています。 私は数日から問題があり、あなたが私を助けることができるかどうか質問したい。 レイアウト、テキスト、イメージが異なるrecyclerViewを表示したい。 私はこのコードを持っています、最初のタイプは、テキストが機能していますが、イメージは表示されません。RecyclerViewに画像が表示されていません

ありがとうございました。

public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 
    Historias object = mList.get(position); 
    if (object != null) { 
     switch (object.getTipoHistoria()) { 
      case tipo_texto: 
       ((CityViewHolder) holder).mTitle.setText(object.getTexto()); 
       break; 
      case tipo_imagen: 

       StorageReference storageRef = storage.getReferenceFromUrl("gs://xx.appspot.com/imagenes/un-gato-bebe-433.jpg"); 

       storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
        @Override 
        public void onSuccess(Uri uri) { 
         new RetrieveFeedTask().execute(uri.toString()); 

        } 
       }).addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception exception) { 
         // Handle any errors 
        } 
       }).addOnCompleteListener(new OnCompleteListener<Uri>() { 
        @Override 
        public void onComplete(@NonNull Task<Uri> task) { 
         ((EventViewHolder) holder).mImage.setImageBitmap(feed); 
        } 
       }); 

       break; 
     } 
    } 
} 

答えて

1

ウェブまたはsdから写真をダウンロードするための特別なライブラリを使用することをおすすめします。ここではいくつか:


Picasso

Picasso.with(context).load("path_to_image").into(imageView); 

Glide

Glide.with(this).load("path_to_image").into(imageView); 
1

ユーザーが1つだけの場合が実行されるswitch文を入力したときに知っているだけで、スイッチケースを取り外し、これだけあなたのセットテキストは画像1ではなく実行されていた

public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { 
    Historias object = mList.get(position); 

       holder.mTitle.setText(object.getTexto()); 


       StorageReference storageRef = storage.getReferenceFromUrl("gs://xx.appspot.com/imagenes/un-gato-bebe-433.jpg"); 

       storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
        @Override 
        public void onSuccess(Uri uri) { 
         new RetrieveFeedTask().execute(uri.toString()); 

        } 
       }).addOnFailureListener(new OnFailureListener() { 
        @Override 
        public void onFailure(@NonNull Exception exception) { 
         // Handle any errors 
        } 
       }).addOnCompleteListener(new OnCompleteListener<Uri>() { 
        @Override 
        public void onComplete(@NonNull Task<Uri> task) { 
         holder.mImage.setImageBitmap(feed); 
        } 
       }); 


     } 
    } 
} 

と私は画像を読み込むためにピカソまたはグライドライブラリを使用することをお勧めします、画像をロードする超簡単に

編集。

holderを使用してください。 ((EventViewHolder) holder)

の代わりに
関連する問題