我正在开发两个Android应用程序,一个是baseApp,另一个是pluginApp。目的是在安装相应的插件时扩展baseApp的功能。 pluginApp将包含XML布局文件,其中包含我需要在baseApp中显示的“new_layouts”。有没有办法通过Inter Process Communication或类似的方式将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.为什么我收到错误,这表示什么?
答案 0 :(得分:0)
- 是否可以将一个应用中的视图用于其他应用?
醇>
不直接。
- 可以将RemoteView用于此目的吗?
醇>
是
如果是,那么如何?
大概是通过使用您已有的代码。 This pair of sample projects演示了这个过程。
- 为什么我收到错误
醇>
因为EditText
不是the few widgets supported by RemoteViews
之一。
这表明了什么?
这表明您有三种选择:
限制使用RemoteViews
请勿尝试在应用之间共享用户界面
实施您自己的RemoteViews
- 类似系统
最后,RemoteViews
只是一个数据结构,它描述了如何构建用户界面以及如何发送非常粗粒度的事件(例如,点击,通过PendingIntent
)。除了时间和专业知识之外,没有什么能阻止您创建自己的Parcelable
数据结构,该结构描述了如何构建比RemoteViews
支持的更丰富的UI。