2015-05-05 88 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