62 lines
2.2 KiB
Java
62 lines
2.2 KiB
Java
package es.tatvil.elfarodelperegrino;
|
|
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
|
|
public class AlbergueAdapter extends RecyclerView.Adapter<AlbergueAdapter.AlbergueViewHolder> {
|
|
|
|
private List<Albergue> listaAlbergues;
|
|
private double etapaLat, etapaLon;
|
|
|
|
public AlbergueAdapter(List<Albergue> listaAlbergues, double etapaLat, double etapaLon) {
|
|
this.listaAlbergues = listaAlbergues;
|
|
this.etapaLat = etapaLat;
|
|
this.etapaLon = etapaLon;
|
|
}
|
|
|
|
@NonNull
|
|
@Override
|
|
public AlbergueViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
View view = LayoutInflater.from(parent.getContext())
|
|
.inflate(R.layout.item_albergue, parent, false);
|
|
return new AlbergueViewHolder(view);
|
|
}
|
|
|
|
@Override
|
|
public void onBindViewHolder(@NonNull AlbergueViewHolder holder, int position) {
|
|
Albergue albergue = listaAlbergues.get(position);
|
|
holder.tvNombre.setText(albergue.getNombre());
|
|
holder.tvTipo.setText("Tipo: " + albergue.getTipo());
|
|
holder.tvTelefono.setText("Tel: " + albergue.getTelefono());
|
|
|
|
float[] results = new float[1];
|
|
android.location.Location.distanceBetween(etapaLat, etapaLon, albergue.getLatitud(), albergue.getLongitud(), results);
|
|
float distanciaKm = results[0] / 1000;
|
|
|
|
holder.tvDistancia.setText(String.format(Locale.getDefault(), "A %.1f km del destino", distanciaKm));
|
|
}
|
|
|
|
@Override
|
|
public int getItemCount() {
|
|
return listaAlbergues.size();
|
|
}
|
|
|
|
public static class AlbergueViewHolder extends RecyclerView.ViewHolder {
|
|
TextView tvNombre, tvTipo, tvDistancia, tvTelefono;
|
|
|
|
public AlbergueViewHolder(@NonNull View itemView) {
|
|
super(itemView);
|
|
tvNombre = itemView.findViewById(R.id.tvAlbergueNombre);
|
|
tvTipo = itemView.findViewById(R.id.tvAlbergueTipo);
|
|
tvDistancia = itemView.findViewById(R.id.tvAlbergueDistancia);
|
|
tvTelefono = itemView.findViewById(R.id.tvAlbergueTelefono);
|
|
}
|
|
}
|
|
}
|