zoukankan      html  css  js  c++  java
  • Delphi XE5 android toast

    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.

    使用方法:  短提示 Toast(s)    长时间提示:      Toast(s,LongToast);

  • 相关阅读:
    Gradle Android Plugin 中文手册
    WxApiUtil.ts
    通过qrcodejs2和html2canvas把iframe中的内容生成带二维码的海报长图片
    TypeScript--类型声明
    ZJNU 2663
    ZJNU 2652
    etcd学习(7)-etcd中的线性一致性实现
    com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。
    帝国cms显示点击数比后台多1个的解决方法
    RedHat换源
  • 原文地址:https://www.cnblogs.com/china1/p/3427948.html
Copyright © 2011-2022 走看看