Как мне сохранить некоторую справочную информацию, связанную с каждым элементом в обзоре рейка, в Android с использованием Java? - PullRequest
0 голосов
/ 27 марта 2020

Я создаю приложение для социальных сетей, используя 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();
    }

}
...