我正在尝试创建一个活动,提供一个选择图标的屏幕。选择此选项后,此应用应按以下方式运行:
1-每个选定的图标应出现在主屏幕中,并带有自己的图像。这些图标不应作为应用程序目录中的应用程序提供。它们应该表现为简单的快捷方式,由主要活动直接添加或删除;
2 - 当我按下主屏幕上的其中一个图标时,我想根据按下的图标启动应具有特定行为的活动。
是否可以实施此要求?你能帮我解决一下这个指南或解决方法吗?
非常感谢您的支持。
JoséReviralho
答案 0 :(得分:1)
每个选定的图标都应出现在主屏幕中,并带有自己的图像
我假设"它自己的形象" =="选择图标"。
您无法在运行时更改与活动关联的图标。如果图标列表相当小,而且它们都是可绘制的资源,您可以尝试每个图标<activity-alias>
一个,默认情况下全部禁用,然后使用PackageManager
和setComponentEnabledSetting()
启用一个用户选择。如果用户可以多次选择相同的图标,则每个图标需要有N <activity-alias>
个元素(因此应用程序可以在每个选择的启动器中显示)。这很快就会变得非常冗长。
它们应该表现为简单的快捷方式,由主要活动直接添加或删除
如果通过&#34;简单的快捷方式&#34;你的意思是&#34;启动器/应用程序抽屉中的图标&#34;,<activity-alias>
元素各自都有标准MAIN
/ LAUNCHER
<intent-filter>
,所以那些你启用将显示在那里。
请注意,并非所有主屏幕实现都会检测到启用和禁用这些内容的时间,因此如果图标未显示,用户可能需要重新启动。
当我按下主屏幕上的其中一个图标时,我想根据按下的图标启动应具有特定行为的活动
您无法更改<activity-alias>
在运行时指向的活动 - 这是硬编码到清单中的活动。之一:
您将对所有图标使用一个活动,每个不同的图标都有不同的片段,或者
您需要让<activity-alias>
个元素都指向一个使用Theme.NoDisplay
的活动,而这个活动又可以确定要启动的正确实际活动,或者
每个图标需要M <activity-alias>
个元素,每个可能的活动需要一个元素,以便为正确的图标/活动组合启用正确的元素
是否可以实施此要求?
总之,这不容易实现,但理论上应该是可行的。