【问题标题】:ActionBar share item produces "Android System" thingyActionBar 分享项产生“Android 系统”的东西
【发布时间】:2013-07-26 21:15:21
【问题描述】:

我想在操作栏中显示一个共享图标,按下后会出现一个选择器。我已经完成了大部分工作,但是这个不受欢迎的中间人介入了......

菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_share"
          android:title="@string/share"
          android:showAsAction="always"
          android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"
    />    
</menu>

SherlockFragment 的 onCreateOptionsMenu:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {     
    // Inflate menu resource file.
    inflater.inflate(R.menu.share_menu, menu);

    // Locate MenuItem with ShareActionProvider
    MenuItem item = menu.findItem(R.id.menu_share);

    // Fetch and store ShareActionProvider
    this.shareActionProvider = (ShareActionProvider) item.getActionProvider();

    final String title = r.getString(R.string.feedback_share);
    final String subject = r.getString(R.string.share_subject);
    final String message = r.getString(R.string.share_message_plain);

    Intent intent = app.newShareIntent(title, subject, message);
    this.shareActionProvider.setShareIntent(intent);
}

意图工厂:

public Intent newShareIntent(String title, String subject, String message) {            
    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);

    intent.putExtra(Intent.EXTRA_SUBJECT, subject);
    intent.putExtra(Intent.EXTRA_TEXT, message);

    Intent chooser = Intent.createChooser(intent, title);
    chooser.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    return chooser;
}

不受欢迎的中间人:

当我点击这个人时,他会按照指示进行操作并显示选择器。但我真的对参与他的服务不感兴趣。

我追求的是什么:

或者在下拉列表中使用所有三个(或用户设备上的多个)...或者能够设置与共享图标内联显示的默认值:

【问题讨论】:

    标签: android android-intent menu share


    【解决方案1】:

    但我真的对参与他的服务不感兴趣。

    但你要求“他的服务”,因为你是打电话给createChooser()并决定将其用作你的分享Intent的人。

    摆脱它,直接返回您的ACTION_SENDIntent,“Android 系统”应该会消失。

    【讨论】:

    • 好吧,这行得通...有什么方法可以让它们进入下拉列表?见编辑
    • @psoft:恐怕我不明白你的问题。
    • 在我的上一张截图中,您可以在操作栏中的分享图标旁边看到蓝牙图标。我想要垂直列表中的蓝牙图标与其他图标(消息、电子邮件等)。
    • @psoft:试试setShareHistoryFileName(null)。我认为右边的图标是基于历史的。
    • 创建选择器而不是拉列表怎么样?
    猜你喜欢
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-27
    相关资源
    最近更新 更多