未调用Android Sherlock Actionbar onOptionsItemSelected

时间:2014-05-29 11:11:59

标签: android android-actionbar actionbarsherlock

  

我使用Sherlock Actionbar在我的应用程序的Action Bar中显示共享选项。   “共享”选项工作正常。

     

我想获得用户从“共享”选项中选择的选项,以便我可以共享   Facebook,消息,邮件等的不同文本。

     

为此我使用 onOptionsItemSelected 函数,但是这个函数   永远不会被称为。

     

请帮我修复此问题或有任何解决方法   为达到这个。感谢..

public class MainActivity extends SherlockActivity {

    private ShareActionProvider mShareActionProvider;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        /** Inflating the current activity's menu with res/menu/items.xml */
        getSupportMenuInflater().inflate(R.menu.items, menu);

        mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share).getActionProvider();

        Intent intent = getDefaultShareIntent();

        if(intent!=null)
            mShareActionProvider.setShareIntent(intent);
        return super.onCreateOptionsMenu(menu);

    }    

    /** Returns a share intent */
    private Intent getDefaultShareIntent(){     

        Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("text/plain");
        intent.putExtra(Intent.EXTRA_SUBJECT, "SUBJECT");
        intent.putExtra(Intent.EXTRA_TEXT,"Sample Content !!!");
        return intent;
    }

    @Override
    public boolean onOptionsItemSelected(com.actionbarsherlock.view.MenuItem item) {
        System.out.println("Testing...................");
        return false;    
    }

}

Items.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/share"
        android:title="@string/share"
        android:showAsAction="always"
        android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"        
    />    
</menu>

1 个答案:

答案 0 :(得分:0)

  

为此,我使用的是onOptionsItemSelected函数,但从不调用此函数。

不应该被召唤。它没有被要求任何行动提供者。

  

我想获得用户从“共享”选项中选择的选项,以便我可以为Facebook,消息,邮件等共享不同的文本。

ShareActionProvider不直接支持。