Delphi XE里面 SharedActivityContext 提示错误

使用歪果仁的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,
Androidapi.Helpers;//加上,否则SharedActivityContext提示错误,

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.

//-------------------

在使用的页面:

uses
Android.JNI.Toast,

procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
if (Key = vkHardwareBack) or (Key = vkEscape) then
begin
if IsFirstBack then
begin
IsFirstBack := False;
Key := 0;
Timer1.Enabled := True;
Toast(‘再按一次退出‘,ShortToast);
// Toast(‘再按一次退出‘,ShortToast);
end
else
begin
end;
end;
end;

窗体上(TForm2)Onkeyup-->FormKeyUp

时间: 2025-01-08 06:43:32

Delphi XE里面 SharedActivityContext 提示错误的相关文章

Delphi XE 10 跨平台三层数据库应用教程

Delphi XE 10 跨平台三层数据库应用教程 前言: Delphi XE 开始越来越庞大,比经典的Delphi7难用,但依然是目前所有跨平台开发工具中开发效率最高.最容易上手的,其快速设计RAD理念是无与伦比的符合人性(什么?是懒惰). 目前网上XE10类似教程很少,而且学习途中遇到一些问题就难以继续了,经本菜鸟千辛万苦的求索,特推出Delphi XE 10系列教程. 三层数据库应用是目前最简单.方便.易扩展的架构,而跨平台应用又是所谓的“互联网+”最需要的,下面的教程分服务器端和客户端两

Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决(对三层的例子配置有帮助)

Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLStoredProc.TSQLTable.TsqlServerMethod.TSQLMonitor.TSimpleDataSet).但是因为该组件只提供了各种数据库的抽象驱动,没有提供底层的与数据库直接交互的驱动库,因此,要想使用具体某种数据库,还需要搭配提供商驱动.本文以Delphi XE在Window

Delphi XE中使用dbExpress连接MySQL数据库疑难问题解决

Delphi IDE中包含一个Data Explorer的组件,如下图所示: 该组件基于dbExpress(包含TSQLConnection.TSQLDataSet.TSQLQuery.TSQLStoredProc.TSQLTable.TsqlServerMethod.TSQLMonitor.TSimpleDataSet).但是因为该组件只提供了各种数据库的抽象驱动,没有提供底层的与数据库直接交互的驱动库,因此,要想使用具体某种数据库,还需要搭配提供商驱动.本文以Delphi XE在Window

在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unusual way.

在windows直接运行Qt编译出来的可执行程序出现了如下提示错误: this application has requested the runtime to terminate it an unusual way. please contact the application’s support team for more information. 出现这种情况是因为缺少该程序运行所需要的动态链接库. 解决方法一:修改系统环境变量,在Path中添加Qt的bin路径就OK了.不过这只能在本机运

[转]:Delphi XE中泛型数组的使用范例

Delphi XE中泛型数组的使用范例,下面的范例简单的使用了泛型字符串数组,如用 TArray 代替 array of Word, 还可以使用 TArray 类提供的算法(就是少了点). uses Generics.Collections, Generics.Defaults; {测试 TArray 的 Sort 方法} procedure TForm1.Button1Click(Sender: TObject); var arr: TArray<string>; //同 array of

SourceTree不出现用户登录窗口,提示错误fatal: unable to access&#39;...&#39;; error setting certificate verify locations

SourceTree不出现用户登录窗口,提示错误fatal: unable to access'...'; error setting certificate verify locations; ...\Git\mingw64\libexec\ssl\certs 去查看这个这个目录下的文件是否存在,不存在则放到对应的地方即可. SourceTree不出现用户登录窗口,提示错误fatal: unable to access'...'; error setting certificate verif

Oracle登录时提示错误,导致用户无法登录

Oracle登录时提示错误,导致用户无法登录,错误如下 ------------------------------------------------------------------------- ORA-00604:递归SQL级别1出现错误 ORA-01653表SYS.AUD$无法通过1024(在表空间SYSTEM中扩展) ORA-02002:写入审计线索时出错 ORA-01653表SYS.AUD$无法通过1024(在表空间SYSTEM中扩展) ---------------------

sql server 2008 配置管理器 提示错误 "远程过程调用失败。(0x800706be)" 或者shutting down(0x80041033)

打开sql server 2008 配置管理器提示如下图所示的错误 或者如下图所示的错误 在网上查找相关资料后,找到解决方法如下: 卸载 Microsoft sql server 2012 Express  LocalDB 即可 sql server 2008 配置管理器 提示错误 "远程过程调用失败.(0x800706be)" 或者shutting down(0x80041033),布布扣,bubuko.com sql server 2008 配置管理器 提示错误 "远程过

Eclipse创建Maven时提示错误could not resolve archetype

今天用Eclipse创建Maven多模块项目的时候提示错误: could not resolve archetype ******release from any of the configured repositories 这个问题网上主要是两个解决方案: 1.是修改setting.xml文件 详情请见:http://www.cnblogs.com/dingyingsi/p/3616802.html 2.是添加新的Catalog配置 详情请见:http://blog.csdn.net/afga