DELPHI 实现安卓Toast提示

toast提示是Android系统中一种消息框类型,一种简易的消息提示框;是Android中用来显示提示信息的一种机制。

实际效果如下图红色框标示:

本实例测试环境:DELPHI11 + Windwos11测试成功
在这里插入图片描述

第一步:创建一个独立的单元

unit u_Toast;

interface

uses
  System.SysUtils, System.Types, System.Classes
{$IFDEF ANDROID}
    , FMX.Helpers.Android, Androidapi.JNI.app, Androidapi.JNIBridge,
  Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNI.Widget
{$ENDIF}
    ;

type

  TToastLength = record
  const
    ShortToast = 0;
    LongToast = 1;
  end;

  TGravity = record
  const
    AXIS_CLIP = 8;
    AXIS_PULL_AFTER = 4;
    AXIS_PULL_BEFORE = 2;
    AXIS_SPECIFIED = 1;
    AXIS_X_SHIFT = 0;
    AXIS_Y_SHIFT = 4;
    BOTTOM = 80;
    CENTER = 17;
    CENTER_HORIZONTAL = 1;
    CENTER_VERTICAL = 16;
    CLIP_HORIZONTAL = 8;
    CLIP_VERTICAL = 128;
    DISPLAY_CLIP_HORIZONTAL = 16777216;
    DISPLAY_CLIP_VERTICAL = 268435456;
    &END = 8388613;
    FILL = 119;
    FILL_HORIZONTAL = 7;
    FILL_VERTICAL = 112;
    HORIZONTAL_GRAVITY_MASK = 7;
    LEFT = 3;
    NO_GRAVITY = 0;
    RELATIVE_HORIZONTAL_GRAVITY_MASK = 8388615;
    RELATIVE_LAYOUT_DIRECTION = 8388608;
    RIGHT = 5;
    START = 8388611;
    TOP = 48;
    VERTICAL_GRAVITY_MASK = 112;
  end;

procedure Toast(const msg: string;
  duration: Integer = TToastLength.ShortToast); overload;

procedure Toast(const msg: string; duration: Integer; gravity: Integer;
  xOffset: Integer; yOffset: Integer); overload;

implementation

procedure Toast(const msg: string; duration: Integer = TToastLength.ShortToast);
begin
{$IFDEF ANDROID}
  CallInUiThread(
    procedure
    begin
      TJToast.JavaClass.makeText(TAndroidHelper.Activity,
        StrToJCharSequence(msg), duration).show;
    end);
{$ENDIF}
end;

procedure Toast(const msg: string; duration: Integer; gravity: Integer;
xOffset: Integer; yOffset: Integer);
{$IFDEF ANDROID}
var
  vToast: JToast;
{$ENDIF}
begin
{$IFDEF ANDROID}
  CallInUiThread(
    procedure
    begin
      vToast := TJToast.JavaClass.makeText(TAndroidHelper.Activity,
        StrToJCharSequence(msg), duration);
      vToast.setGravity(gravity, xOffset, yOffset);
      vToast.show;
    end);
{$ENDIF}
end;

end.

第二步:调用方式

Toast('您输入的登录信息错误');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值