Использование пользовательских Diaglogs в представлении переработчика - PullRequest
0 голосов
/ 14 мая 2019

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

Я подписан на CodingInFlows Видео о том, как реализовать это

Проблема, с которой я сталкиваюсь, связана с моим адаптером утилизатора. Я не могу использовать getSupportFragmentManager (8:24 в видео) после игры. Я думаю, что проблема в соответствии с этой публикацией что я не расширяю менеджер фрагментов, но не вижу, как я могу это сделать, поскольку это адаптер для утилизации

адаптер

        @Override
    public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {

...

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

                openDialog();


//old code to open acitity
                int pos = holder.getAdapterPosition();
                Intent intent = new Intent(mContext, Confirmation_Activity.class);
                intent.putExtra("Message_ID", blog_list.get(pos).getMessage_doc());
                mContext.startActivity(intent);

            }
        });

    }

    public void openDialog(){
        Confirmation_Dialog confirmation_dialog = new Confirmation_Dialog();
        confirmation_dialog.show();
    }

Диалог

    public class Confirmation_Dialog extends AppCompatDialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

        LayoutInflater inflater = getActivity().getLayoutInflater();
        View view = inflater.inflate(R.layout.layout_dialog, null);

        builder.setView(view)
                .setTitle("Are You Sure")
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });
        return builder.create();

    }
}

Как мне решить эту проблему, любая обратная связь великолепна!

1 Ответ

0 голосов
/ 15 мая 2019

Я решил проблему с помощью

fragmentManager manager = ((AppCompatActivity)mContext).getSupportFragmentManager();

и передать его как

confirmation_dialog.show(manager, "example dialog");

надеюсь, это поможет!

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