добавить в избранное - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть проблема, и я хотел бы, чтобы вы помогли мне с решением.

Я храню данные в базе данных Firebase в режиме реального времени в режиме повторного использования и хочу добавить функцию черезфлажок, пользователь может добавить его в мой любимый, и когда я добавляю его, птица, которую я добавляю, перезагружается в другом представлении корзины.

DATA ViewHolder

public class ViewHolder extends RecyclerView.ViewHolder   {


CheckBox favorito1;
FirebaseDatabase mfirebaseDatabase;
DatabaseReference mdatabaseReference;



View mView;

public ViewHolder(@NonNull View itemView) {
    super(itemView);


    mView = itemView;


    mfirebaseDatabase = FirebaseDatabase.getInstance();
    mdatabaseReference = mfirebaseDatabase.getReference();



    favorito1 = itemView.findViewById(R.id.san_miguel_favorite);

    itemView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {


            mClickListener.onItemClick(view,getAdapterPosition());



        }
    });

    itemView.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(View view) {


            mClickListener.onItemLongClick(view,getAdapterPosition());
            return true;
        }
    });

}


public void setDatails(Context ctx, String title, String image, String description) {

    TextView mTitletv = mView.findViewById(R.id.rtitleTv);
    ImageView mimageIv = mView.findViewById(R.id.rImageView);
    TextView mDetailtv = mView.findViewById(R.id.san_miguel_description);





    Picasso.get().load(image).into(mimageIv);
    mDetailtv.setText(description);


}

private ViewHolder.ClickListener mClickListener;





public interface ClickListener{

    void onItemClick(View view, int position);
    void onItemLongClick(View view, int position);
}

public  void  setOnClickListener (ViewHolder.ClickListener clickListener){


    mClickListener = clickListener;

}

}

MainActivity

public class Alto_de_san_miguel extends AppCompatActivity {



LinearLayoutManager mlinearLayoutManager;
RecyclerView mrecyclerview;
FirebaseDatabase mfirebaseDatabase;
DatabaseReference mdatabaseReference;
FirebaseRecyclerAdapter<Model, ViewHolder> firebaseRecyclerAdapter;
FirebaseRecyclerOptions<Model> options;




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alto_de_san_miguel);





    mlinearLayoutManager = new LinearLayoutManager(this);
    mlinearLayoutManager.setReverseLayout(true);
    mlinearLayoutManager.setStackFromEnd(true);

    mrecyclerview = findViewById(R.id.reciclerview_san_miguel);

    mfirebaseDatabase = FirebaseDatabase.getInstance();
    mdatabaseReference = mfirebaseDatabase.getReference("san_miguel");










show_san_miguel();


}

private void show_san_miguel() {



    options = new FirebaseRecyclerOptions.Builder<Model>().setQuery(mdatabaseReference,Model.class).build();

    firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Model, ViewHolder>(options) {
        @Override
        protected void onBindViewHolder(@NonNull ViewHolder holder, int position, @NonNull Model model) {


            holder.setDatails(getApplicationContext(), model.getTitle(), model.getImage(), model.getDescription());

        }

        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {


            View itemview = LayoutInflater.from(parent.getContext()).inflate(R.layout.fila_san_miguel, parent, false);

            ViewHolder viewHolder = new ViewHolder(itemview);
            viewHolder.setOnClickListener(new ViewHolder.ClickListener() {
                @Override
                public void onItemClick(View view, int position) {

                }

                @Override
                public void onItemLongClick(View view, int position) {

                }
            });


            return viewHolder;
        }
    };
    mrecyclerview.setLayoutManager(mlinearLayoutManager);
    firebaseRecyclerAdapter.startListening();
    mrecyclerview.setAdapter(firebaseRecyclerAdapter);


}

@Override
protected void onStart() {
    super.onStart();

    if(firebaseRecyclerAdapter != null){

        firebaseRecyclerAdapter.startListening();
    }
}
}

DATO Модель

public class Model {

private String id;
private  String title, image, description;

public Model(String id, String title, String image) { }


public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getImage() {
    return image;
}

public void setImage(String image) {
    this.image = image;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}


public String getId() {
    return id;
}

public void setId(String id) {
    this.id = id;
}
}

enter image description here enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...