2015-05-05 144 views
0

我在我的ActionBar中有一个ShareActionProvider,并且我已经按照google的示例对它进行了发球。我很好奇为什么它不可点击?ShareActionProvider无法点击?

编辑:我知道,如果我删除shareHistory功能它变得可点击,但我不想保持共享历史记录。

XML:

<item 
    android:id="@+id/menu_item_share" 
    android:actionProviderClass="android.widget.ShareActionProvider" 
    android:icon="@android:drawable/ic_menu_share" 
    android:showAsAction="ifRoom" 
    android:title="Share" /> 

Java代码:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_legislation, menu); 

    MenuItem item = (MenuItem)menu.findItem(R.id.menu_item_share); 

    sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(Intent.ACTION_ALL_APPS, "http://www.anilinkz.com/"); 

    mSharedActionProvider = (ShareActionProvider)item.getActionProvider(); 

    setShareIntent(sharingIntent); 

    return true; 
} 

public void setShareIntent(Intent shareIntent) { 
    if (mSharedActionProvider != null) { 
     mSharedActionProvider.setShareIntent(shareIntent); 
     mSharedActionProvider.setShareHistoryFileName(null); 
    } 
} 
+1

'ACTION_ALL_APPS'是'Intent'行动。它不是一个额外的关键,“ACTION_ALL_APPS”不是“ACTION_SEND”协议的一部分。除此之外,或许您正在测试的设备或模拟器没有任何支持“text/plain”的“ACTION_SEND”的东西,尽管这很不寻常。 – CommonsWare

+0

我正在测试一个星系s4。我做ACTION_ALL_APPS的唯一原因是安抚facebook,因为他们不允许EXTRA_TEXT。它也不适用于EXTRA_TEXT。 – cj1098

回答

0

试试这个:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_legislation, menu); 

    MenuItem item = (MenuItem)menu.findItem(R.id.menu_item_share); 

    sharingIntent = new Intent(Intent.ACTION_SEND); 
    sharingIntent.setType("text/plain"); 
    sharingIntent.putExtra(Intent.EXTRA_TEXT, "http://www.anilinkz.com/"); 

    mSharedActionProvider = (ShareActionProvider) item.getActionProvider(); 

    setShareIntent(sharingIntent); 

    return true; 
} 

public void setShareIntent(Intent shareIntent) { 
    if (mSharedActionProvider != null) { 
     mSharedActionProvider.setShareIntent(shareIntent); 
    } 
} 
+0

你做的唯一的事情就是删除setShareFileHistoryName()...我不想共享历史记录。它确实使它可点击,但我已经知道:( 我会编辑我的帖子,谢谢! – cj1098