I have RecyclerView and i want to send URL with Google Static map and set this map by Picasso. Now i only try to set any Static Map on every element in RecyclerView but Picasso.with(x) haven't context. How to do it?
Maybe can I generate image in FragmentHistory and send it as argument?
FragmentHistory.xml have only RecyclerView;
My FragmentHistory:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_history, container, false); ButterKnife.bind(this, view); FragmentHistorySimpleAdapter adapter = new FragmentHistorySimpleAdapter(generateSimpleListAllWorkout()); RecyclerView recyclerView = (RecyclerView) historyRecyclerView; recyclerView.setHasFixedSize(true); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.setAdapter(adapter); return view; } Function to get data from BD:
private List<FragmentHistorySimpleViewModel> generateSimpleListAllWorkout() { List<FragmentHistorySimpleViewModel> simpleViewModelList = new ArrayList<>(); DataBaseMain bd = new DataBaseMain(getActivity()); Cursor kurs = bd.giveAllWorkout(); if (kurs.getCount() != 0) { kurs.moveToLast(); do { // Pobranie wartości z kolumn (0-3) String nr = kurs.getString(0); String time = kurs.getString(1); String workoutTime = kurs.getString(2); String distance = kurs.getString(3); String avgSpeed = kurs.getString(4); String avgPace = kurs.getString(5); String kcal = kurs.getString(6); String LatLng = kurs.getString(7); String dane = "ID: " + nr + "\n" + "Time: " + time + "\n" + "Workout time: " + workoutTime + "\n" + "Distance: " + distance + " km" + "\n" + "Average speed: " + avgSpeed + " km/h" + "\n" + "Average pace: " + avgPace + " min/km" + "\n" + "Calories: " + kcal; simpleViewModelList.add(new FragmentHistorySimpleViewModel(dane, "OK")); // Dopóki kursor może poruszać się w dół (po wynikach) } while (kurs.moveToPrevious()); } return simpleViewModelList; } My fragment_history_simple_item.xml have only 2x Text View and ImageView
FragmentHistorySimpleAdapter:
public class FragmentHistorySimpleAdapter extends RecyclerView.Adapter { private List<FragmentHistorySimpleViewModel> models = new ArrayList<>(); public FragmentHistorySimpleAdapter(final List<FragmentHistorySimpleViewModel> viewModels) { if (viewModels != null) { this.models.addAll(viewModels); } } @NonNull @Override public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { final View view = LayoutInflater.from(parent.getContext()).inflate(viewType, parent, false); return new FragmentHistorySimpleViewHolder(view); } @Override public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) { ((FragmentHistorySimpleViewHolder) holder).bindData(models.get(position)); } @Override public int getItemCount() { return models.size(); } @Override public int getItemViewType(final int position) { return R.layout.fragment_history_simple_item; } } FragmentHistorySimpleViewModel:
public class FragmentHistorySimpleViewModel { private String simpleText; private String simpleText2; public FragmentHistorySimpleViewModel(@NonNull final String simpleText, @NonNull final String simpleText2) { setSimpleText(simpleText, simpleText2); } @NonNull public String getSimpleText() { return simpleText; } @NonNull public String getSimpleText2() { return simpleText2; } public void setSimpleText(@NonNull final String simpleText, @NonNull final String simpleText2) { this.simpleText = simpleText; this.simpleText2 = simpleText2; } } FragmentHistorySimpleViewHolder:
public class FragmentHistorySimpleViewHolder extends RecyclerView.ViewHolder { private TextView simpleTextView; private TextView simpleTextView2; private ImageView imageView; public FragmentHistorySimpleViewHolder(final View itemView) { super(itemView); simpleTextView = (TextView) itemView.findViewById(R.id.simple_text); simpleTextView2 = (TextView) itemView.findViewById(R.id.simple_text2); imageView = itemView.findViewById(R.id.imageView); } public void bindData(final FragmentHistorySimpleViewModel viewModel) { simpleTextView.setText(viewModel.getSimpleText()); simpleTextView2.setText(viewModel.getSimpleText2()); String latitudeURL = "42"; String longitudeURL = "122"; String url ="https://maps.googleapis.com/maps/api/staticmap?"; url+="&zoom=13"; url+="&size=600x300"; url+="&maptype=roadmap"; url+="&markers=color:green%7Clabel:G%7C" + latitudeURL + "," + longitudeURL; url+="&key=" + "AIzaSyCj80x6EGndGx07Hy7zuaLx_KFsHKlogV0"; Picasso.with(??????) .load(url) .into(imageView); } }