2013-10-15 30 views
1

我試圖共享提供程序添加到我的操作欄中的蒞臨指導以下幾點: http://developer.android.com/guide/topics/ui/actionbar.html#ShareActionProvidergetActionProvider對於MenuItemCompat類型是未定義的?

但是嘗試添加下面的指示我的onCreateOptionsMenu()內

// Set up ShareActionProvider's default share intent 
MenuItem shareItem = menu.findItem(R.id.action_share); 
mShareActionProvider = (ShareActionProvider) 
     MenuItemCompat.getActionProvider(shareItem); 
mShareActionProvider.setShareIntent(getDefaultIntent()); 

有錯誤時,說雖然它是有記錄的,但getActionProvider對於MenuItemCompat類型是未定義的: http://developer.android.com/reference/android/support/v4/view/MenuItemCompat.html#getActionProvider(android.view.MenuItem)

任何想法?

謝謝!

回答

6

沒有看到你的XML,在你的菜單佈局定義actionProviderClass:

<item android:id=... 
... 
yourapp:actionProviderClass="android.support.v7.widget.ShareActionProvider"/> 

,並獲得與

ShareActionProvider shareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(menuItem); 

一個參考ShareActionProvider請記住,在documentation使用實例從支持圖書館。如果是這種情況,那麼,在你的菜單佈局:

<item android:id=... 
... 
yourapp:actionProviderClass="android.widget.ShareActionProvider"/> 

,並獲得對ShareActionProvider參考:

ShareActionProvider shareActionProvider = (ShareActionProvider) menuItem.getActionProvider(); 
+0

燁確實,在XML,但問題是與MenuItemCompat沒有說功能。 – Bruce

+0

我已經刪除了我自己的答案,因爲你已經用完整的解決方案更新了你的答案。乾杯! – Bruce

相關問題