2 slaks SLaks 于 2013.03.18 15:44 提问

从 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

2个回答

Baby_Bonnie
Baby_Bonnie   2013.03.22 16:18
已采纳

使用下面的代码在 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。

l445695623
l445695623   2013.03.18 18:17

除非你知道Share Via Barcode的启动activity与其他的有什么不同

Csdn user default icon
上传中...
上传图片
插入图片