2012-05-17 55 views
2

我试图使用ShareActionProvider与actionbarsherlock,但我得到:NullPointerException异常使用ShareActionProvider + actionbarsherlock

java.lang.NullPointerException 
at com.iuculano.tvitaliane.Start.onCreateOptionsMenu(Start.java:387) 
at com.actionbarsherlock.app.SherlockActivity.onCreatePanelMenu(SherlockActivity.java:167 
at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:542) 

在onCreateOptionsMenu(菜单菜单)相关的代码是这样的:

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // TODO Auto-generated method stub 
    super.onCreateOptionsMenu(menu); 
    MenuItem menuItem = menu.findItem(R.id.share); 

    //MenuInflater blowUp = getSupportMenuInflater(); 
    //getSupportMenuInflater().inflate(R.menu.menuhome, menu); 


    ShareActionProvider mShareActionProvider = (ShareActionProvider) menuItem.getActionProvider(); //line 387 

    Intent shareIntent = new Intent(Intent.ACTION_SEND); 
    shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
    shareIntent.setType("text/plain"); 

    shareIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.sharesubject)); 
    shareIntent.putExtra(Intent.EXTRA_SUBJECT,getString(R.string.sharetext)); 

    mShareActionProvider.setShareIntent(shareIntent); 

和menuhome.xml有这个:

<item 
    android:id="@+id/share" 
    android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider" 
    android:enabled="true" 
    android:showAsAction="ifRoom" 
    android:visible="true"> 
</item> 

我在哪里错了?

+0

您确定ActionBar Sherlock支持ShareActionProvider吗? –

+0

我认为它支持ShareActionProvider:https://github.com/JakeWharton/ActionBarSherlock/blob/master/samples/demos/src/com/actionbarsherlock/sample/demos/ShareActionProviders.java – Giuseppe

+0

酷!那是两个月前。也许你在图书馆没有?我的第一眼看不到代码中的错误。我会研究它;当使用ActionBar Sherlock时,可能需要使用一些不同的东西,就像使用片段一样。 –

回答

7

固定...我需要在调用findItem之前充气菜单

相关问题