Я создаю приложение для социальных сетей, используя Cloud Firestore. Мои записи коллекции Firestore содержат следующие поля: title
, text
, uid
, timestamp
, latitude
, longitude
, photo url
.
Теперь, когда я получаю эти сообщения и отобразить их на RecyclerView. Я не хочу, чтобы uid, широта, долгота были видны в пользовательском интерфейсе, но они должны быть связаны с элементом для дальнейшего использования при щелчке по элементу.
Как правильно создать данную связь?
Это мой класс POJO:
public class Post {
private String title;
private String dp;
private String description;
private double latitutude,longitude;
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
private String uid;
public double getLatitutude() {
return latitutude;
}
public void setLatitutude(double latitutude) {
this.latitutude = latitutude;
}
public double getLongitude() {
return longitude;
}
public void setLongitude(double longitude) {
this.longitude = longitude;
}
public String getDp() {
return dp;
}
public void setDp(String dp) {
this.dp = dp;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Это класс держателя:
public class PostHolder extends RecyclerView.ViewHolder {
ImageView dp;
TextView title,desc;
public PostHolder(@NonNull View itemView) {
super(itemView);
this.dp = itemView.findViewById(R.id.dpIV);
this.title = itemView.findViewById(R.id.titleTV);
this.desc = itemView.findViewById(R.id.descTV);
}
}
А это адаптер:
public class PostAdapter extends RecyclerView.Adapter<PostHolder> {
Context c;
ArrayList<Post> posts;
public PostAdapter(Context c, ArrayList<Post> posts) {
this.c = c;
this.posts = posts;
}
@NonNull
@Override
public PostHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.row,null);
return new PostHolder(view);
}
@Override
public void onBindViewHolder(@NonNull PostHolder holder, int position) {
holder.title.setText(posts.get(position).getTitle());
holder.desc.setText(posts.get(position).getDescription());
//loadBitmap(position,holder.dp);
Glide.with(holder.dp.getContext())
.load(posts.get(position).getDp())
.diskCacheStrategy(DiskCacheStrategy.ALL)
.apply(RequestOptions.circleCropTransform())
.into(holder.dp);
}
@Override
public int getItemCount() {
Log.e("AdapterSIZE",posts.size()+"");
return posts.size();
}
}