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.

  • 相关阅读:
    python3+Appium自动化12-H5元素定位环境搭建
    夜神模拟器连不上adb的解决办法
    性能测试工具LoadRunner04-LR之浏览器打不开
    性能测试工具LoadRunner03-LR之Virtual User Generator 脚本创建以及回放设置
    性能测试工具LoadRunner02-LR简介
    JavaScript Math 对象
    【ES6】模拟字符串拼接
    【ES6】var / let / const
    媒体查询,响应式布局
    数组操作
  • 原文地址:https://www.cnblogs.com/happyhills/p/3544665.html
Copyright © 2011-2022 走看看