ActionBarSherlock ShareActionProvider for Android 2.3无法正常工作

时间:2013-01-24 21:05:05

标签: android actionbarsherlock shareactionprovider

我正在使用ABS ShareActionProvider。 我已经按照以下代码进行了操作:https://github.com/JakeWharton/ActionBarSherlock/blob/master/samples/demos/src/com/actionbarsherlock/sample/demos/ShareActionProviders.java并使用最新版本的Android(4.0+),但没有使用Android 2.x,我无法点击图标。

这是我的代码:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.share, menu);

    MenuItem actionItem = menu.findItem(R.id.menu_item_share_action_provider_action_bar);
    actionProvider = (ShareActionProvider) actionItem.getActionProvider();
    actionProvider.setShareHistoryFileName(null);
    actionProvider.setShareIntent(share("More apps : https://play.google.com/store/apps/developer?id=Stéphane+Mathis"));

    if(mItem != null)
    {
        actionProvider.setShareIntent(share(mItem.content));        
    }

    super.onCreateOptionsMenu(menu, inflater);
}

private Intent share(String message) 
{
    final Intent MessIntent = new Intent(Intent.ACTION_SEND);
    MessIntent.setType("text/plain");
    MessIntent.putExtra(Intent.EXTRA_TEXT, message);
    return MessIntent;
}

我错过了什么吗?

编辑: 我尝试了ABS的“官方”演示并且它不能在模拟器中工作,但它适用于真实设备。我的代码也是如此,使用真实设备(使用4.1.2,4.2.1和2.3.3测试)但不在模拟器中。那我该怎么办?当我在模拟器中测试它时发布一个不起作用的应用程序,我感到很不自在。

1 个答案:

答案 0 :(得分:3)

我认为这是由于here描述的错误,简而言之,模拟器没有安装超过1个能够获得此共享意图的应用。