问题描述
- 从 createChooser 中添加或删除选项
-
String message = "Text I want to share"; Intent share = new Intent(Intent.ACTION_SEND); share.setType("text/plain"); share.putExtra(Intent.EXTRA_TEXT, message); startActivity(Intent.createChooser(share,"Share on"));
现在它显示的是默认的选项如:
Bluetooth, Email, Facebook, Gmail, LinkedIn, Messaging, Share Via Barcode
。 这些是安装程序吗?
我如何能从列表中删除一部分或者再添加一些?比如我想删除Share Via Barcode
。
解决方案
使用下面的代码在 Chooser Screen 添加一个新的 item
Intent share = new Intent(Intent.ACTION_SEND);
share.setType("text/plain");
share.putExtra(Intent.EXTRA_TEXT, message);
Intent addIntent = ;//whatever you want
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INTENT, share );
chooser.putExtra(Intent.EXTRA_TITLE, "title");
Intent[] intentArray = {addIntent };
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
startActivity(chooser);
但是删除特定的 items 是不可能的。因此你要使用Packagemanager.resolveActivity 来解决intent,并且创建自定义的 listview。
解决方案二:
除非你知道Share Via Barcode的启动activity与其他的有什么不同
时间: 2024-08-08 01:15:15