代码之家  ›  专栏  ›  技术社区  ›  schlingel

Android ShareProvider仅显示Android系统条目

  •  1
  • schlingel  · 技术社区  · 11 年前

    我正在尝试将共享操作栏项目添加到我的应用程序中。在夏洛克的例子中,它看起来是这样的:

    Actionbar from sherlock action bar

    但当我在应用程序中使用此代码时:

    public static void attachShareItemToMenu(Menu menu, String title, String url) {
        MenuItem item = menu.findItem(R.id.menu_item_share_share);
        ShareActionProvider provider = (ShareActionProvider)item.getActionProvider();
    
        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_TEXT, url);
        intent.putExtra(android.content.Intent.EXTRA_SUBJECT, title);
        Intent shareIntent = Intent.createChooser(intent, title);
    
        provider.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);
        provider.setShareIntent(shareIntent);
    }
    

    看起来是这样的:

    Sherlock actionbar

    如果我单击该项目,它将打开默认的共享意向。我不明白为什么它看起来像这样,因为代码与 example code .

    你知道这里出了什么问题吗?

    1 回复  |  直到 11 年前
        1
  •  2
  •   CommonsWare    11 年前

    摆脱 createChooser() 线你不需要它 ShareActionProvider 正在显示的是选择器本身。