3

我正在开发两个 android 应用程序,一个是 baseApp,另一个是 pluginApp。目的是在安装相应插件时扩展 baseApp 的功能。pluginApp 将包含 XML 布局文件,其中包含我需要在 baseApp 中显示的“new_layouts”。有没有办法通过进程间通信或类似的方法将 new_layout 从 pluginApp 传递给 baseApp?

我尝试了以下方法,但没有成功,我将 pluginApp 中的布局文件包装为“RemoteViews”对象并将其传递给 baseApp,但是当我将它膨胀到 baseApp 中时,我收到一条错误消息

android.view.InflateException: Binary XML file line #9: Class not allowed to be inflated android.widget.EditText

注意:“new_layout”在其他元素中包含一个 EditText,EditText 是第一个子元素。

我以前从未使用过 RemoteViews,也不了解它们的用途。

请指导我 1. 是否可以使用从一个应用程序到另一个应用程序的视图?2. RemoteViews 可以用于此目的吗?如果是,那怎么办?3. 为什么我会收到错误,这表明什么?

4

1 回答 1

1
  1. 是否可以使用从一个应用程序到另一个应用程序的视图?

不是直接的。

  1. RemoteViews 可以用于此目的吗?

是的。

如果是,那怎么办?

大概是通过使用您已经拥有的代码。这对示例项目演示了该过程。

  1. 为什么我收到错误

因为EditText不是. _RemoteViews

这说明什么?

它表明您有三个选择:

  1. 将自己限制在受支持的小部件上RemoteViews

  2. 不要尝试在应用之间共享 UI

  3. 实现你自己的RemoteViews类似系统

最后,aRemoteViews只是一个数据结构,它描述了如何构建 UI 以及如何发送回非常粗粒度的事件(例如,点击,通过 a PendingIntent)。除了时间和专业知识之外,没有什么能阻止您创建自己的Parcelable数据结构来描述如何构建比所RemoteViews支持的更丰富的 UI。

于 2017-02-14T20:20:17.067 回答