zoukankan      html  css  js  c++  java
  • delphi android 中 Toast 的实现(老外写的UNIT)

    unit Android.JNI.Toast;

    // Java bridge class imported by hand by Brian Long (http://blong.com)
    interface

    {$IFDEF ANDROID}

    uses
    Androidapi.JNIBridge,
    Androidapi.JNI.JavaTypes,
    Androidapi.JNI.GraphicsContentViewText;
    {$ENDIF}
    {$IFDEF ANDROID}

    type
    TToastLength = (LongToast, ShortToast);

    JToast = interface;

    JToastClass = interface(JObjectClass)
    ['{69E2D233-B9D3-4F3E-B882-474C8E1D50E9}']
    { Property methods }
    function _GetLENGTH_LONG: Integer; cdecl;
    function _GetLENGTH_SHORT: Integer; cdecl;
    { Methods }
    function init(context: JContext): JToast; cdecl; overload;
    function makeText(context: JContext; text: JCharSequence; duration: Integer)
    : JToast; cdecl;
    { Properties }
    property LENGTH_LONG: Integer read _GetLENGTH_LONG;
    property LENGTH_SHORT: Integer read _GetLENGTH_SHORT;
    end;

    [JavaSignature('android/widget/Toast')]
    JToast = interface(JObject)
    ['{FD81CC32-BFBC-4838-8893-9DD01DE47B00}']
    { Methods }
    procedure cancel; cdecl;
    function getDuration: Integer; cdecl;
    function getGravity: Integer; cdecl;
    function getHorizontalMargin: Single; cdecl;
    function getVerticalMargin: Single; cdecl;
    function getView: JView; cdecl;
    function getXOffset: Integer; cdecl;
    function getYOffset: Integer; cdecl;
    procedure setDuration(value: Integer); cdecl;
    procedure setGravity(gravity, xOffset, yOffset: Integer); cdecl;
    procedure setMargin(horizontalMargin, verticalMargin: Single); cdecl;
    procedure setText(s: JCharSequence); cdecl;
    procedure setView(view: JView); cdecl;
    procedure show; cdecl;
    end;

    TJToast = class(TJavaGenericImport<JToastClass, JToast>)
    end;

    procedure Toast(const Msg: string; duration: TToastLength = ShortToast);

    {$ENDIF}

    implementation

    {$IFDEF ANDROID}

    uses
    FMX.Helpers.Android;

    procedure Toast(const Msg: string; duration: TToastLength);
    var
    ToastLength: Integer;
    begin
    if duration = ShortToast then
    ToastLength := TJToast.JavaClass.LENGTH_SHORT
    else
    ToastLength := TJToast.JavaClass.LENGTH_LONG;
    CallInUiThread(
    procedure
    begin
    TJToast.JavaClass.makeText(SharedActivityContext, StrToJCharSequence(Msg),
    ToastLength).show
    end);
    end;
    {$ENDIF}

    end.

  • 相关阅读:
    24-反转链表
    23-链表中环的入口节点
    22-链表中倒数第k个节点
    21-调整数组顺序使奇数位于偶数前面
    18-删除链表的节点
    17-打印从1到最大的n位数
    16-数值的整数次方
    15-二进制中1的个数
    14-剪绳子
    13-机器人的运动范围
  • 原文地址:https://www.cnblogs.com/happyhills/p/3544665.html
Copyright © 2011-2022 走看看