如何从 alertDialog 片段接收是/否值到实际活动?

我需要我的应用程序来测试此人是否单击是继续或取消停止。我有一个 AlertDialogFragment:


public class FragmentConfirmarPicagem extends DialogFragment {

    @NonNull

    @Override

    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {

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

                .setTitle("Confirmar")

                .setMessage("Deseja mesmo picar o ponto agora?")

                .setPositiveButton("Sim", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {


                    }

                })

                .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {

                    @Override

                    public void onClick(DialogInterface dialog, int which) {


                    }

                });

        return builder.create();

    }

}

然后我在 MainActivity 中有这段代码:new FragmentConfirmarPicagem().show(getSupportFragmentManager(), "Confirmar");


我知道正/负按钮的 onClick 具有该功能,但就像在 MainActivity 中一样,我不知道单击的按钮。


基本上我想要的是:


    //if clicks Sim(Yes) does the following

        switch (verificarPonto()) {

            case 1:

                txtHoraEntrada.setText(hora);

                ponto.setEntrada(picagem);

                return;

            case 2:

                txtHoraSaidaAlmoco.setText(hora);

                ponto.setSaidaAlmoco(picagem);

                return;

            case 3:

                txtHoraEntradaTarde.setText(hora);

                ponto.setEntradaTarde(picagem);

                return;

            case 4:

                txtHoraSaida.setText(hora);

                ponto.setSaida(picagem);

                return;

            }


料青山看我应如是
浏览 89回答 1
1回答

慕少森

为什么需要为 Dialog 创建一个新类?你可以直接从你的活动中做到这一点            AlertDialog.Builder builder = new AlertDialog.Builder(thisActivity)                    .setTitle("Confirmar")                    .setMessage("Deseja mesmo picar o ponto agora?")                    .setPositiveButton("Sim", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialog, int which) {                            switch (verificarPonto()) {                                case 1:                                    txtHoraEntrada.setText(hora);                                    ponto.setEntrada(picagem);                                   return;                                ...                            }                        }                    })                    .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {                        @Override                        public void onClick(DialogInterface dialog, int which) {                        }                    });            builder.create().show();如果由于某种原因你需要创建一个新类,你可以这样做public static class FragmentConfirmarPicagem extends DialogFragment {    public  DialogInterface.OnClickListener listener;    @NonNull    @Override    public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())                .setTitle("Confirmar")                .setMessage("Deseja mesmo picar o ponto agora?")                .setPositiveButton("Sim", listener)                .setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                    }                });        return builder.create();    }}然后,在你的活动中            FragmentConfirmarPicagem fcp = new FragmentConfirmarPicagem();            fcp.listener = new DialogInterface.OnClickListener() {                @Override                public void onClick(DialogInterface dialog, int which) {                    switch (verificarPonto()) {                            case 1:                                txtHoraEntrada.setText(hora);                                ponto.setEntrada(picagem);                               return;                            ...                        }                                        }                };                fcp.show(getSupportFragmentManager(), "Confirmar");
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java