Ver Mensaje Individual
  #1  
Antiguo 17-01-2023
dani36652 dani36652 is offline
Miembro
 
Registrado: abr 2019
Posts: 61
Reputación: 6
dani36652 Va camino a la fama
Lightbulb (ANDROID) Botones de Dialog siempre en inglés -Solucion alternativa con JAlertDialog

Hola a todos los colegas del foro, el día de hoy les traigo un aporte que si bien no es de mucha relevancia y a nivel funcionalidad no afecta en nada tener siempre en inglés los botones del message dialog que proporciona Delphi;
para algunos otros colegas puede ser interesante optar por el cuadro de dialogo nativo de Android y así mismo tener en el idioma correspondiente tanto los titulos, el mensaje y el texto de los botones.
Para ello se hizo uso de JAlertDialog nativo, les dejo el código por aquí:

Código Delphi [-]
unit UMain;

interface

uses
  {$IFDEF ANDROID}
  Androidapi.JNI.Webkit, FMX.Dialogs.Android,
  Androidapi.JNI.Print,
  Androidapi.jni,fmx.helpers.android, Androidapi.Jni.app,
  Androidapi.Jni.GraphicsContentViewText, Androidapi.JniBridge,
  Androidapi.JNI.Os, Androidapi.Jni.Telephony,
  Androidapi.JNI.JavaTypes,Androidapi.Helpers,
  Androidapi.JNI.Widget,System.Permissions,
  Androidapi.Jni.Provider,Androidapi.Jni.Net,
  fmx.TextLayout,AndroidAPI.JNI.Support,
 {$ENDIF}
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.DialogService;

type
  TOnClickListener = class(TJavaLocal, JDialogInterface_OnClickListener)
  public
    constructor Create;
    procedure onClick(dialog: JDialogInterface; which: Integer); cdecl;
  end;

type
  TfrmMain = class(TForm)
    btnAlert_Dialog: TButton;
    procedure btnAlert_DialogClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.fmx}

procedure TfrmMain.btnAlert_DialogClick(Sender: TObject);
var Dlg: JAlertDialog_Builder;
OnClickListener: TOnClickListener;
begin
  OnClickListener:= TOnClickListener.Create;
  Dlg:= TJAlertDialog_Builder.JavaClass.init(TAndroidHelper.Context);
  Dlg.setTitle(StrToJCharSequence('Advertencia'));
  Dlg.setMessage(StrToJCharSequence('¿Salir de la aplicación?'));
  Dlg.setPositiveButton(StrToJCharSequence('SI'), OnClickListener);
  Dlg.setNegativeButton(StrToJCharSequence('NO'), nil);
  Dlg.show;
end;

{ TMyOnClickListener }

constructor TOnClickListener.Create;
begin
 inherited Create;
end;

procedure TOnClickListener.onClick(dialog: JDialogInterface; which: Integer);
begin
  //Escribir la lógica aquí
  Application.Terminate;
end;

end.

Saludos cordiales.
Responder Con Cita