Когда я нажимаю кнопку, я не получаю правильную позицию FirebaseRecyclerAdapter - PullRequest
0 голосов
/ 12 марта 2019

Я пришел сюда сегодня, потому что, когда я нажимаю кнопку, я не получаю правильную позицию данных в представлении рециркулятора;

      ...
   FirebaseRecyclerAdapter<usertasks,PrivateTasksViewHolder> 
 TasksRecyclerViewAdapter = new FirebaseRecyclerAdapter<usertasks, 
PrivateTasksViewHolder>(options){
        @NonNull
        @Override
        public PrivateTasksViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
            return new PrivateTasksViewHolder(LayoutInflater.from(viewGroup.getContext())
                    .inflate(R.layout.list_view, viewGroup, false));
        }

        @Override
        protected void onBindViewHolder(@NonNull final PrivateTasksViewHolder holder, final int position, @NonNull final usertasks model) {


            final String list_task_id = getRef(position).getKey();
            mTasksDatabase.push().child(list_task_id).addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                    holder.setTaskName(model.getTaskname());
                    holder.setTaskLocal(model.getTasklocal());
                    holder.setTaskDate(model.getTaskdate());
                    ImageView thrash_delete = mMainView.findViewById(R.id.thrash_delete);
                        thrash_delete.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                Map deletePrivateTask = new HashMap();
                                deletePrivateTask.put("PrivateTasks/" + mCurrent_user_id + "/" + list_task_id , null);
                                mRootRef.updateChildren(deletePrivateTask);
                            }
                        });
 ...

Но когда у него есть держатель, он получает правильную позицию.Кто-то знает причину проблемы, почему я не могу получить жесткие позиции при нажатии ImageView?И почему, когда его владелец получает правильную позицию?

 holder.mView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
  Map deletePrivateTask = new HashMap();
  deletePrivateTask.put("PrivateTasks/" + mCurrent_user_id + "/" + list_task_id , null);
   mRootRef.updateChildren(deletePrivateTask);
 }});

Надеюсь, вы, ребята, можете дать мне несколько советов, спасибо всем.Я продолжаю искать решение, но пока не нашел решения.

1 Ответ

0 голосов
/ 12 марта 2019

Вместо использования позиции:

holder.getAdapterPosition()

Подробнее вы можете прочитать здесь .

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