Я использую адаптер для домашней работы, и в этом объявлении есть также адаптер, который содержит изображения, и я получаю URL-адреса из базы данных Firebase, здесь у меня есть код для получения дополнительной информации.
что такое product.getUrl на самом деле содержащий
D / ADAPTER_IMAGE: [https://firebasestorage.googleapis.com/v0/b/ngf-connection.appspot.com/o/uploads%2FBtech%20CSE%20I%2F917838245010_status_66703835b57940eb8812f50c09aacbd1.jpg?alt=media&token=b9de8228-36f4-496a-9ca5-dc0640f2eb9e 2020-04-08 18: 13: 10.331 12057-12057 / com.ngfcet.ngfconnection D / ADAPTER_IMAGE: https://firebasestorage.googleapis.com/v0/b/ngf-connection.appspot.com/o/uploads%2FBtech%20CSE%20I%2F917248800852_status_200b86ad9f0d43e8aab65037b1588f32.jpg?alt=media&token=47b2f7ed-3cf1-4aea-9883-0f552e24754e 2020-04-08 18: 13: 10.344 12057-12057 / com.ngfcet.ngfconnection D / ADAPTER_IMAGE: https://firebasestorage.googleapis.com/v0/b/ngf-connection.appspot.com/o/uploads%2FBtech%20CSE%20I%2F918400606848_status_cdad13e789b049fcbe4c396cf7170fa6.jpg?alt=media&token=fbb825bf-1aab-4056-b12b-01ca458a21a5 2020-04-08 18: 13: 10.355 12057-12057 / com .ngfcet.ngfconnection D / ADAPTER_IMAGE: https://firebasestorage.googleapis.com/v0/b/ngf-connection.appspot.com/o/uploads%2FBtech%20CSE%20I%2FIMG-20200408-WA0003.jpg?alt=media&token=fb16dd18-26aa-4d28-86ea-de32dbbdbeb4]
Адаптер 1: Основная строка с комментарием // задает другой рекламный код отсюда
import android.content.Context;
import android.net.Uri;
import android.text.format.DateUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.firebase.database.ValueEventListener;
import com.ngfcet.ngfconnection.R;
import com.ngfcet.ngfconnection.SendHomeworkActivity;
import com.ngfcet.ngfconnection.Util.CoreHelper;
import com.ngfcet.ngfconnection.models.HomeworkStudents;
import com.ngfcet.ngfconnection.models.ImageHomeworkModel;
import com.ngfcet.ngfconnection.models.ImagesModel;
import java.net.URI;
import java.net.URISyntaxException;
import java.sql.Timestamp;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.StringTokenizer;
public class HomeworkAdapter extends RecyclerView.Adapter<HomeworkAdapter.ProductViewHolder> {
//this context we will use to inflate the layout
private Context mCtx;
String dateValue, datePrevValue;
URI myUri;
//we are storing all the products in a list
private List<HomeworkStudents> productList;
private static SingleClickListener sClickListener;
ImagesHomeworkAdapter adapter;
List<ImageHomeworkModel> imagesList;
CoreHelper coreHelper;
private static int sSelected = -1;
//getting the context and product list with constructor
public HomeworkAdapter(Context mCtx, List<HomeworkStudents> productList) {
this.mCtx = mCtx;
this.productList = productList;
}
@Override
public ProductViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//inflating and returning our view holder
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.recycler_home_work, null);
return new ProductViewHolder(view);
}
@Override
public void onBindViewHolder(ProductViewHolder holder, int position) {
//getting the product of the specified position
final HomeworkStudents product = productList.get(position);
//binding the data with the viewholder views
holder.textViewDescription.setText(product.getDescription());
holder.textViewSubject.setText(product.getSubject());
coreHelper = new CoreHelper(mCtx);
imagesList = new ArrayList<>();
adapter = new ImagesHomeworkAdapter(mCtx, imagesList);
GridLayoutManager gridLayoutManager = new GridLayoutManager(mCtx, 4);
holder.recyclerViewHomeWorkImages.setHasFixedSize(true);
holder.recyclerViewHomeWorkImages.setLayoutManager(gridLayoutManager);
holder.recyclerViewHomeWorkImages.setAdapter(adapter);
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy & kk:mm:ss");
Date sourceDate = null;
try {
sourceDate = dateFormat.parse(product.getDateTime());
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat targetFormat = new SimpleDateFormat("kk:mm");
String targetdatevalue = targetFormat.format(sourceDate);
holder.textViewDateTime.setText(targetdatevalue);
SimpleDateFormat format1 = new SimpleDateFormat("dd-MM-yyyy & kk:mm:ss");
Date dt1 = null;
try {
dt1 = format1.parse(product.getDateTime());
} catch (ParseException e) {
e.printStackTrace();
}
DateFormat format2 = new SimpleDateFormat("EEEE");
String finalDay = format2.format(dt1);
holder.tvDayHomework.setText(finalDay);
Date realDate = null;
try {
realDate = dateFormat.parse(product.getDateTime());
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat dateHomework = new SimpleDateFormat("dd MMM yyyy");
dateValue = dateHomework.format(realDate);
holder.tvDateHomework.setText(dateValue);
if (sSelected == position) {
holder.textViewDescription.setSingleLine(false);
if (!product.getAttachments().equals("")) {
String urls = product.getAttachments();
String[] urlsArray = urls.split(",");
for (String url : urlsArray) {
Log.d("IMAGE_URL", url);
holder.recyclerViewHomeWorkImages.setVisibility(View.VISIBLE);
holder.imgButtonDownload.setVisibility(View.VISIBLE);
imagesList.add(new ImageHomeworkModel(url, "Name")); // setting another adapter from here
}
}
// holder.mTextView.setBackgroundColor(Color.parseColor("#CBEEEEEE"));
// holder.mTextView.setTextColor(Color.parseColor("#FBC02D"));
} else {
holder.textViewDescription.setSingleLine(true);
holder.imgButtonDownload.setVisibility(View.GONE);
holder.recyclerViewHomeWorkImages.setVisibility(View.GONE);
// holder.mTextView.setBackgroundColor(Color.parseColor("#FFFFFF"));
// holder.mTextView.setTextColor(Color.parseColor("#000000"));
}
holder.imgButtonDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!product.getAttachments().equals("")) {
StringTokenizer tokenizer = new StringTokenizer(product.getAttachments(), ",");
while (tokenizer.hasMoreTokens()) {
// System.out.println(tokenizer.nextToken());
Log.d("Attachment Token", tokenizer.nextToken());
}
// Toast.makeText(mCtx, product.getAttachments(), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(mCtx, "Nothing to download", Toast.LENGTH_SHORT).show();
}
}
});
if (position == 0) {
holder.llDayDateHomework.setVisibility(View.VISIBLE);
} else {
HomeworkStudents previous = productList.get(position - 1);
Date previoudDate = null;
Date otherDate = null;
try {
previoudDate = dateFormat.parse(previous.getDateTime());
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat previousDateHomework = new SimpleDateFormat("dd MMM yyyy");
String previousDateValue = previousDateHomework.format(previoudDate);
try {
otherDate = dateFormat.parse(product.getDateTime());
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat otherDateHomework = new SimpleDateFormat("dd MMM yyyy");
String otherDateValue = otherDateHomework.format(otherDate);
if (previousDateValue.equals(otherDateValue)) {
holder.llDayDateHomework.setVisibility(View.GONE);
} else {
holder.llDayDateHomework.setVisibility(View.VISIBLE);
}
}
}
@Override
public int getItemCount() {
return productList.size();
}
class ProductViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
TextView textViewDescription, textViewSubject, textViewDateTime, tvDayHomework, tvDateHomework;
LinearLayout llDayDateHomework;
CardView cardViewHomework;
ImageButton imgButtonDownload;
RecyclerView recyclerViewHomeWorkImages;
public ProductViewHolder(View itemView) {
super(itemView);
textViewDescription = itemView.findViewById(R.id.tvTitleHomework);
textViewSubject = itemView.findViewById(R.id.tvSubjectHomework);
textViewDateTime = itemView.findViewById(R.id.tvDateTimeHomework);
tvDayHomework = itemView.findViewById(R.id.tvDayHomework);
tvDateHomework = itemView.findViewById(R.id.tvDateHomework);
llDayDateHomework = itemView.findViewById(R.id.llDayDateHomework);
cardViewHomework = itemView.findViewById(R.id.cardViewHomework);
imgButtonDownload = itemView.findViewById(R.id.imgButtonDownload);
recyclerViewHomeWorkImages = itemView.findViewById(R.id.recyclerViewHomeWorkImages);
cardViewHomework.setOnClickListener(this);
}
@Override
public void onClick(View view) {
sSelected = getAdapterPosition();
sClickListener.onItemClickListener(getAdapterPosition(), view);
}
}
public void selectedItem() {
notifyDataSetChanged();
}
public void setOnItemClickListener(SingleClickListener clickListener) {
sClickListener = clickListener;
}
public interface SingleClickListener {
void onItemClickListener(int position, View view);
}
}
Адаптер 2: Основная строка с комментарием // Настройка изображения с помощью Picasso
import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.ngfcet.ngfconnection.R;
import com.ngfcet.ngfconnection.models.ImageHomeworkModel;
import com.squareup.picasso.Picasso;
import java.util.List;
public class ImagesHomeworkAdapter extends RecyclerView.Adapter<ImagesHomeworkAdapter.ImageViewHolder> {
Context context;
List<ImageHomeworkModel> imagesList;
public ImagesHomeworkAdapter(Context context, List<ImageHomeworkModel> imagesList) {
this.context = context;
this.imagesList = imagesList;
}
@NonNull
@Override
public ImagesHomeworkAdapter.ImageViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.picked_img_layout, parent, false);
return new ImagesHomeworkAdapter.ImageViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull ImagesHomeworkAdapter.ImageViewHolder holder, final int position) {
ImageHomeworkModel product = imagesList.get(position);
holder.btnRemove.setVisibility(View.GONE);
Picasso.with(context).load(product.getUrls()).into(holder.imgSetData); //Setting image with picasso
Log.d("ADAPTER_IMAGE_URL", product.getUrls());
if (holder.imgSetData.getDrawable() == null) {
holder.imgSetData.setImageResource(R.drawable.ic_pdf);
}
}
@Override
public int getItemCount() {
return imagesList.size();
}
class ImageViewHolder extends RecyclerView.ViewHolder {
ImageView btnRemove, imgSetData;
public ImageViewHolder(@NonNull View itemView) {
super(itemView);
btnRemove = itemView.findViewById(R.id.imgDeleteSelectedImage);
imgSetData = itemView.findViewById(R.id.imgSetData);
}
}
}
Класс модели
public class ImageHomeworkModel {
private String Urls;
private String fileName;
public ImageHomeworkModel(String urls, String fileName) {
Urls = urls;
this.fileName = fileName;
}
public ImageHomeworkModel(String[] urlsArray, String name) {
}
public String getUrls() {
return Urls;
}
public void setUrls(String urls) {
Urls = urls;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
Пожалуйста, помогите мне решить мою проблема с изображением Пикассо, не отображающим изображение, даже если журнал не показывает ничего