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);

Delphi XE5 android toast

你可能感兴趣的:(android)