Как обновить recyclerView при нажатии кнопки в alertDialog - PullRequest
0 голосов
/ 30 октября 2019

// RecyclerAdapter (при прослушивании щелчка для изображения)

itemView.setOnClickListener(new View.OnClickListener() {
      @Override
         public void onClick(View v) {
          Integer p = getAdapterPosition()
                Drawable d = imageView.getDrawable();
                ((MainActivity) itemView.getContext()).showOrganisation(p,d);
            }
});

// Основная активность

 public void showOrganisation(Integer p, Drawable d) {

    myDialogOrg.setContentView(R.layout.popup_organisation);
    TextView selectButton = myDialogOrg.findViewById(R.id.popOrgClose);
    ImageView imageView = myDialogOrg.findViewById(R.id.popUpLogo);
    imageView.setImageDrawable(d);

    myDialogOrg.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));

    selectButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            SharedPreferences pref = v.getContext().getSharedPreferences("CheckBoxStateOrganisationer", MODE_PRIVATE);
            SharedPreferences.Editor editor = pref.edit();

           // Send mysql query to database that a charity is selected
           // Code
                            response{
           // Store State of checkbox
               editor.putBoolean("CheckBoxOrganisationer"+p, true);
               editor.commit();
             }
            ////////////////////////////////
            // update state of checkbox in//
            //////////////////////////////// 

          -> I've added code here <-  

            // Dismiss popup window
            myDialogOrg.dismiss();
        }
    });
    myDialogOrg.show();
}

Я попробовал Fragment.adapter.notifyItemChanged (p);и Fragment.adapter.notifyDataSetChanged ();

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

Есть ли способ перезагрузить «MyViewHolder» recycler.adapter дляна одну позицию, чтобы обновление карты было обновлено?

// Organisation_Fragment

       Initiates the adapter

Когда нажата кнопка в диалоге AlertDialog, и предупреждение отключено, флажок определенного элемента (позиции) вДолжен появиться выбранный recyclerView.

AlertDialog displayed over recyclerView

Ответы [ 2 ]

0 голосов
/ 30 октября 2019

В этом случае я обычно добавляю в свой адаптер метод, который реагирует на изменение данных

Адаптер:

    public void updateData(List<String> newList){
        suggestions.clear();
        if(newList!=null) suggestions.addAll(newList);
        notifyDataSetChanged();
    }

Ваша активность:

private AutoCompleteAdapter adapter;

  @Override
    protected void onCreate(Bundle savedInstanceState) {
adapter = new AutoCompleteAdapter
                            (context, suggestions, etAnswer);
recyclerView.setAdapter(adapter);
}

слушатель вашего клика

selectButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
         // your other code
            ////////////////////////////////
            // update state of checkbox in//
            //////////////////////////////// 

          -> I've added code here <-  
           adapter.updateData(yourNewList);

        }
    });
0 голосов
/ 30 октября 2019

Используйте метод адаптера

adapter.notifyItemChanged(position, your Object);
...