Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Trucos (https://www.clubdelphi.com/foros/forumdisplay.php?f=52)
-   -   (ANDROID) Botones de Dialog siempre en inglés -Solucion alternativa con JAlertDialog (https://www.clubdelphi.com/foros/showthread.php?t=96062)

dani36652 17-01-2023 21:11:46

(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.

dec 18-01-2023 09:38:01

Hola a todos,

¡Gracias por la aportación, Dani!

P.S. No sé si un hilo como este debería ir aquí, en el apartado de trucos o en ambos. :)

Neftali [Germán.Estévez] 18-01-2023 11:15:45

Gracias por la aportación.
Yo creo que es mejor moverlo a trucos y en todo caso modificar el título para indicar Android.

dani36652 19-01-2023 17:19:03

Gracias a ambos.
Para la siguiente ocasión, aportes de este tipo los pondré en el apartado de trucos

Neftali [Germán.Estévez] 20-01-2023 11:44:00

Ya la he modvido a la sección de trucos.
Gracias.


La franja horaria es GMT +2. Ahora son las 08:39:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi