原始代码转自:http://blog.csdn.net/zyjying520/article/details/26158941
修改后源码pas文件下载:http://www.colafile.com/file/2588729
{***************************************************************************} { } { 功能:Android Toast提示消息框 } { 名称:Androidapi.JNI.Widget.Toast.pas } { 版本:1.0 } { 环境:Win7 Sp1 64bit } { 工具:Delphi XE7 } { 日期:2014-11-23 19:45:35 } { 用法:TToast.Show(MessageText, isLongHint) } {--------------------------------------------------------------------------} { 原版作者:ying32 } { QQ:396506155 } { MSN :ying_32@live.cn } { E-mail:yuanfen3287@vip.qq.com } { Website:http://blog.csdn.net/zyjying520/article/details/26158941 } { 版权所有 (C) 2013-2013 ying32.tk All Rights Reserved } {---------------------------------------------------------------------------} { 修改者:tht2009 } { 改动:1、去掉注释掉的方法 } { 2、移动FMX.Helpers.Android引用声明到实现区 } { 3、增加Androidapi.Helpers引用 } { } {***************************************************************************} unit Androidapi.JNI.Widget.Toast; interface uses Androidapi.JNIBridge, Androidapi.JNI.JavaTypes, Androidapi.JNI.GraphicsContentViewText; type JToast = interface;//android.widget.Toast JToastClass = interface(JObjectClass) ['{CF455B66-683D-41F9-B386-0C49E42D4F92}'] {Property Methods} function _GetLENGTH_LONG: Integer; function _GetLENGTH_SHORT : Integer; {Methods} // public Toast (Context context) function init(context: JContext): JToast; cdecl; // public static Toast makeText (Context context, int resId, int duration) function makeText(context: JContext; resId: Integer; duration: Integer): JToast;cdecl;overload; // public static Toast makeText (Context context, CharSequence text, int duration) function makeText(context: JContext; text: JCharSequence; duration: Integer): JToast;cdecl;overload; {Properties} property LENGTH_LONG: Integer read _GetLENGTH_LONG; property LENGTH_SHORT: Integer read _GetLENGTH_SHORT; end; [JavaSignature('android/widget/Toast')] JToast = interface(JObject) ['{4A284317-000C-4048-8674-C475F505CFAF}'] {Methods} // public void cancel () procedure cancel;cdecl; // public int getDuration () function getDuration: Integer; cdecl; // public int getGravity () function getGravity: Integer; cdecl; // public float getHorizontalMargin () function getHorizontalMargin: Single; cdecl; // public float getVerticalMargin () function getVerticalMargin: Single; cdecl; // public View getView () function getView: JView; cdecl; // public int getXOffset () function getXOffset: Integer; cdecl; // public int getYOffset () function getYOffset: Integer; cdecl; // public void setDuration (int duration) procedure setDuration(duration: Integer); cdecl; // public void setGravity (int gravity, int xOffset, int yOffset) procedure setGravity(gravity, xOffset, yOffset: Integer);cdecl; // public void setMargin (float horizontalMargin, float verticalMargin) procedure setMargin(horizontalMargin, verticalMargin: Single);cdecl; // public void setText (int resId) procedure setText(resId: Integer);cdecl;overload; // public void setText (CharSequence s) procedure setText(s: JCharSequence);cdecl;overload; // public void setView (View view) procedure setView(view: JView);cdecl; // public void show () procedure show;cdecl; end; TJToast = class(TJavaGenericImport<JToastClass, JToast>) end; { TToast } TToast = class public class procedure Show(const text: string; LongHint: Boolean = False); end; implementation uses FMX.Helpers.Android, Androidapi.Helpers; { TToast } class procedure TToast.Show(const text: string; LongHint: Boolean); var LDuration: Integer; begin CallInUIThread ( procedure begin case LongHint of True : LDuration := TJToast.JavaClass.LENGTH_LONG; False : LDuration := TJToast.JavaClass.LENGTH_SHORT; end; TJToast.JavaClass.makeText(SharedActivityContext, StrToJCharSequence(text), LDuration).show; end ); end; end.