AlertDialog 不显示文本

AlertDialog does not show text

我正在使用带有 switch case 的 alertDialog,我希望文本根据 case 值而改变。

这是我试过的代码:

private void transacechouée(int i) {
    getActivity().runOnUiThread(new Runnable() {

        @Override
        public void run() {
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity())
                    .setTitle("Information")
                    .setPositiveButton("Exit", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {

                            new Thread(new Runnable() {
                                @RequiresApi(api = Build.VERSION_CODES.KITKAT)
                                @Override
                                public void run() {
                                    Intent intent = new Intent(getActivity(), CashActivity1.class);
                                    startActivity(intent);
                                }
                            }).start();
                        }
                    });

            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
            ReadCardFragment.alertDialogBuilder=alertDialogBuilder;


        }
    });

    switch (i){
        case 1 :
            alertDialogBuilder.setMessage("Transaction non aboutie");

            break;
        case 2:
            alertDialogBuilder.setMessage("Connexion impossible");

            break;
        case 3:

            alertDialogBuilder.setMessage("Problème de récéption");
            break;
        case 4:

            alertDialogBuilder.setMessage("Erreur de traitement");
            break;
        case 5:

            alertDialogBuilder.setMessage("Erreur de transmission");


            break;
        case 6:
            alertDialogBuilder.setMessage("Timout");
            break;
        case 7:

            alertDialogBuilder.setMessage("Transaction invalide");

            break;
        case 90:
            alertDialogBuilder.setMessage("Piste non valide");

            break;
        case 91:

            alertDialogBuilder.setMessage("Transaction non valide");
            break;
            }


 }

我希望 alertDialog 根据情况设置消息,但它不显示任何文本。

您需要在实际显示对话框之前调用 setMessage。请记住,AlertDialog.Builder 只是使用您提供的所有详细信息构建 AlertDialog。在创建 AlertDialog 之后调用 AlertDialog.Builder 的方法为时已晚。

将您得到的整个 switch/case 结构向上移动到 AlertDialog alertDialog = alertDialogBuilder.create();.

行之前