如何将NativeActivity的内容视图设置为Java创建的组件

2023-11-22

有没有办法将 NativeActivity 的内容设置为用 Java 创建的组件(例如 FrameLayout、ImageView 等)?我需要使用 NativeActivity(用于在 Xperia Play 上获取触摸板输入),但我还需要能够查看在 Java 代码中创建的组件。

我尝试重写 onCreate 命令并在那里调用 setContentView,但尽管这不会引发任何错误,但它也不会执行任何操作(显然是因为内容视图已由本机代码设置)。是否有某种窗口 ID 或其他东西我可以传递给本机代码来告诉它内容视图应该是什么,或者可以以某种方式在 XML 中设置它以将 NativeActivity 的内容视图设置为我可以修改的组件来自爪哇?

如果您需要更多信息,请告诉我。


我将在这里为其他有同样问题的人发布答案,因为我最终找到了一种有效的方法。

在 onCreate() 方法中,如果您要设置任何特定的窗口标志(FEATURE_NO_TITLE、FLAG_FULLSCREEN、FLAG_KEEP_SCREEN_ON 等),请在调用 super.onCreate() 之前执行这些操作(否则它们将被忽略)。然后无论你通常把它放在哪里:

setContentView( whatever );

改为这样做:

getWindow().takeSurface( null );
getWindow().setContentView( whatever );

这是从 Java 端控制内容的基本方法。在代码中处理内容的任何位置,请使用“getWindow()”而不是“this”。

其他一些需要记住的事情是,普通的 onKey 和 onTouch 方法不会被调用(它们的本机等效方法将被调用),所以如果您需要能够在 Java 端处理输入,您必须设置建立一些 JNI 链接以将信息从本机发送到 Java。我相信其他所有内容都包含在官方 XPeria Play 触摸板示例代码中(AndroidManifest.xml 的添加以及其他内容)。

如果您想查看我的项目以供参考,它是开源的,可以在以下位置找到:

http://www.paulscode.com/forum/index.php?topic=75.msg1540#msg1540

只需单击“XPeria Play Touch-Pad 示例”旁边的“源代码”链接即可。但它对您来说可能并不是那么有用,因为这是一个相当大的项目,并且可能很难找到您正在寻找的东西。如果您有任何问题,请在我的论坛上发布问题或给我发送电子邮件,我很乐意提供帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将NativeActivity的内容视图设置为Java创建的组件 的相关文章

  • 使用 HttpClient 时,为什么服务器响应中省略了 Content-Length 标头?

    我正在使用这个问题的源代码如何异步执行httprequest并显示下载响应的进度 https stackoverflow com questions 9594318 how to asynchronous perform a httpreq
  • 如何访问android库项目中的资源

    我正在构建一个 android 库项目 它内部需要一些静态资源 图像 xml 等 然后我想知道我可以把这些资源放在哪里以及如何访问它们 既然我把资源放到了assets文件夹 我使用 AssetManager 来访问资源 public cla
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • Google 地图删除标记路线上下文菜单

    我使用 Android Studio 的 Google 地图模板启动了一个新项目 并在地图上添加了一个标记 LatLng location new LatLng lat lng Marker marker mMap addMarker ne
  • Android:使 Dialog 周围的所有内容都比默认值更暗

    我有一个具有以下样式的自定义对话框 它显示了一个无边框对话框 后面的任何内容都会 稍微 变暗 我的设计师希望背后的一切都比 Android 的默认设置更暗 但不是完全黑色 有这样的设置吗 我能想到的唯一解决方法是使用全屏活动而不是对话框 只
  • 如何从android中的外部存储中获取所选文件的文件路径?

    我在选择文件的文件路径时遇到问题 我搜索了整个堆栈溢出 但问题没有解决 从设备中选择文件的代码如下所示 Intent intent new Intent Intent ACTION GET CONTENT intent setType in
  • 适用于 Android 的 Google 云端硬盘\文档 API

    我在几个小时内将 Dropbox 与我的应用程序集成 因为 SDK 描述清晰并且有很好的使用示例 Google Drive 似乎只有一个 一刀切 的 Gdata SDK 它非常重 有很多依赖项 它使我的应用程序的大小增加了三倍 而且不是很直
  • 如何使用应用程序接口将蓝牙套接字传递给另一个活动

    因此 根据我收集的信息 套接字连接既不可序列化 也不可分割 但我需要将蓝牙连接传递给另一个活动 我不想作为中间人编写服务 所以请不要将此作为解决方案发布 我听说有一种方法可以使用自定义应用程序接口来传递这些类型的对象 但我一生都找不到这样的
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • Jetpack 导航:如何从一个嵌套图的子级导航到另一个嵌套图的子级?

    导航结构 MainActivity nav root HomeFragment AuthNestedGraph nav auth BeforeOtpFragment home OtpFragment ProfileNestedGraph n
  • Android 中的列表视图分页

    我有一个列表视图 其中显示了 50 个元素 我决定对视图进行分页 以便视图的每个部分都有 10 个元素 然后单击 下一个 按钮以获取下一个 10 个元素 如何设置10个数据 我关注这篇文章http rakhi577 wordpress co
  • android textview 有字符限制吗?

    我正在尝试在 android TextView 中输入超过 2000 3000 个字符 它不显示任何内容 任何一份指南是否对 android textview 有字符限制或什么 我在G3中做了一些小测试 我发现 如果activtiy布局中有
  • Glass 语音命令给定列表中最接近的匹配项

    使用 Glass 您可以通过 确定 Glass 菜单启动应用程序 它似乎会选择最接近的匹配项 除非命令相距数英里 并且您可以明显看到命令列表 无论如何 是否可以从应用程序内或从语音提示 在初始应用程序触发后 给出类似的列表并返回最接近的匹配
  • Activity 类型中的方法 showDialog(int) 在 Android 中已被弃用?

    方法showDialog int 从类型Activity is 已弃用 什么原因 以及如何解决 什么原因 http developer android com reference android app Activity html show
  • 在 Android 手机中通过耳机插孔发送数据

    我目前正在处理一个新项目 我必须通过具有特定电压的耳机插孔发送数据 然后我可以在该电压上工作 所以这里我需要根据我的数据来编程具体电压 我是否可以在android中访问耳机的输出电压 然后创建一个应用程序来控制该电压 这是一篇讨论此问题的
  • 使用 DataBindingComponent 的 Inflate 方法

    当 Glide 成功渲染图像后 我在更新文本视图时看到此错误 致命异常 java lang IllegalStateException 必需 CustomBinding 类中的 DataBindingComponent 为 null 绑定适
  • Flash 对象未显示在phonegap android 中

    我已经在 android 手机间隙创建了一个应用程序 我有一个屏幕 我想显示一个静态 flash obj 所以我在屏幕 HTML 页面中放入了以下代码
  • Fragment 生命周期和在不存在的 Fragment 上调用 onCreate 的问题

    我正在 Android 中测试片段 并且片段生命周期有一些令人困惑的行为 我有一个活动 在横向和纵向模式下使用 xml 布局 我有一些代码可以访问在片段布局之一中定义的 EditText 对象 如果我以横向模式启动应用程序 一切都会正常 我
  • 如何正确编写AttributeSet的XML?

    我想创建一个面板适用于 Android 平台的其他小部件 http code google com p android misc widgets 在运行时 XmlPullParser parser getResources getXml R
  • 将焦距(以毫米为单位)转换为像素 - Android

    在 Android 中 我当前正在访问camera s焦距通过使用getFocalLength in Camera1 Camera2不是一个选择 我正在尝试完全填充当前的计算 focal length pix focal length m

随机推荐

  • Linux 上的 GCC 错误是什么?如何解决? gcc:内部编译器错误:非法指令(程序为)

    I type gcc hello c出现这样的情况 gcc internal compiler error Illegal instruction program as Please submit a full bug report wit
  • 如何对列表中的 data.frame 进行子集化并返回 data.frame?

    当对列表内的 data frame 进行子集化时 我得到向量而不是 data frames 请参见下面的示例 如何避免这种情况并获得 data frames l lt list data frame a c 1 2 3 data frame
  • 使用 :: 访问模块方法

    我读过的文档告诉我使用 Module method 来访问模块中的方法 但是 我也可以使用 Module method 这是语法糖 还是我很困惑 module Cat FURRY LEVEL 4 def self sound w meow
  • 没有 Maven 或 gradle 的 Spock

    我有一个使用 ant 进行构建的标准 Java 项目 我想在不中断当前流程的情况下向该项目添加 spock 测试 允许我开始将 spock 测试集成到该项目中的最小更改集是什么 关于使用 ant 将 spock 集成到遗留项目中的可用信息并
  • 不使用回调方法加载谷歌地图

    我的网站上有多个谷歌地图实例 现在同一页面上有两个不同的谷歌地图 发生的情况是第一个有效 其他无效 现在我知道逻辑问题让我先向您展示我的代码
  • MP4 / ISO 14496-12:如何找到视频和音频访问单元?

    我正在编写一个用于检查 MP4 文件 又名 ISO 基本媒体文件格式 ISO 14496 第 12 部分 的工具 我可以解释 ISO 14496 12 中列出的由 OSS 生成的大部分框 我还没有弄清楚如何提取单独的视频访问单元和音频访问单
  • C# 测试字符串是否为整数?

    我只是好奇 C 语言或 NET Framework 中是否内置了一些东西来测试某些东西是否是整数 if x is an int Do something 在我看来可能有 但我只是一年级编程学生 所以我不知道 Use the int TryP
  • 如何获取 Java 类引用的初始化值

    我有一个Class klass Object init klass boolean class false klass byte class byte 0 Object null 用例是我有一个任意的java lang reflect Me
  • 将 List 转换为 List (或任何扩展 Number 的类)

    我想创建一个非常通用的实用方法来获取任何集合并将其转换为从数字 长整型 双精度 浮点型 整数等 扩展的用户可选类的集合 我想出了这段代码 它使用 Google Collections 来转换 Collection 并返回一个不可变列表 im
  • Python 中的 OpenCV PCA 计算

    我正在通过 OpenCV 在 Python 中 加载一组大小为 128x128 的测试图像 将它们重新整形为向量 1 128x128 并将它们全部放在一个矩阵中以计算 PCA 我正在使用新的 cv2 库 代码 import os impor
  • 如何使用 OpenSSL 生成自签名 SSL 证书? [关闭]

    Closed 这个问题是与编程或软件开发无关 目前不接受答案 我正在向嵌入式 Linux 设备添加 HTTPS 支持 我尝试通过以下步骤生成自签名证书 openssl req new gt cert csr openssl rsa in p
  • 用于突出显示多个单词的 Microsoft Word 宏

    我的目的是创建一个非常基本的宏来查找一系列单词并突出显示它们 不幸的是 我不知道如何一步完成多个单词 例如 以下代码有效 Sub Macro1 Macro1 Macro Selection Find ClearFormatting Sele
  • 如何正确刷新 UINavigationBar?

    关于这个问题 如何从子视图控制器中更改后退按钮文本 我正在寻找一种在更改后退按钮标题后刷新导航栏的正确方法previousViewController navigationItem backBarButtonItem title New T
  • Google OpenId:找不到 OpenID 端点(间歇性)

    通常使用 Google OpenId 工作正常 每天数千次 然后它会开始间歇性出错并超时一个小时左右 某些请求会验证 但不是全部 反复验证最终会起作用 错误消息是 Event code 200000 Event message No Ope
  • NodeJS中获取Mongo数据库中插入文档的_id

    我使用 NodeJS 在 MongoDB 中插入文档 使用collection insert我可以将文档插入数据库 如下代码所示 collection insert objectToInsert function err if err re
  • 查找 R 列中的最小非零值

    我在R中遇到这种情况 my minimum lt min my data frame my column number 这将返回最小值 我想要的是最小的非零值 我见过很多更复杂的情况 人们想要一个非零最小值的向量 但我只想要一个数字 即存在
  • 是否可以在原始输入中吞下一个密钥?

    我正在使用原始输入API因为我需要能够以不同的方式响应来自不同 USB HID 设备的按键 即使它是相同的按键 我的窗口收到WM INPUT消息正确 我可以检索RAWKEYBOARD结构获取我需要的所有信息 现在我想阻止这些 USB 设备切
  • 在uWSGI中启用内部路由

    我有一个与 uWSGI 一起使用的 Django 应用程序 我的uWSGI配置是 uwsgi http 127 0 0 1 8000 env DJANGO SETTINGS MODULE my django app settings mod
  • 用随机值替换数据框中的 NaN

    我有一个带有 NaN 值的数据框 data train 下面给出了一个示例 republican n y republican n NaN democrat NaN n democrat n y 我想用一些随机值替换所有 NaN 例如 re
  • 如何将NativeActivity的内容视图设置为Java创建的组件

    有没有办法将 NativeActivity 的内容设置为用 Java 创建的组件 例如 FrameLayout ImageView 等 我需要使用 NativeActivity 用于在 Xperia Play 上获取触摸板输入 但我还需要能