亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 alertDialog 片段接收是/否值到實際活動?

如何從 alertDialog 片段接收是/否值到實際活動?

料青山看我應如是 2022-11-30 16:59:12
我需要我的應用程序來測試此人是否單擊是繼續或取消停止。我有一個 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 中一樣,我不知道單擊的按鈕?;旧衔蚁胍氖牵?nbsp;   //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;            }
查看完整描述

1 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

為什么需要為 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");


查看完整回答
反對 回復 2022-11-30
  • 1 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號