How do you turn off share history when using ShareActionProvider?

后端 未结 8 662
遇见更好的自我
遇见更好的自我 2020-12-02 23:31

The new ShareActionProvider available in Android 4.0 (or in earlier versions if you\'re using ActionBarSherlock) has a feature where the last used item is displayed in the a

8条回答
  •  时光取名叫无心
    2020-12-02 23:45

    For me, the best solution for avoid the history icon is don't use ShareActionProvider, instead of it, create it as any other action:

        
    

    at the menu/activity_actions.xml put a item with the ic_action_share icon...

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_actions, menu);
        return super.onCreateOptionsMenu(menu);
     }
    

    Inflate the menu normally...

    private void actionShare(){
         Intent i = new Intent(Intent.ACTION_SEND);
         i.setType("text/plain");
         i.putExtra(Intent.EXTRA_SUBJECT, "my string");
         i.putExtra(Intent.EXTRA_TEXT, "another string");
         startActivity(i); 
         //Or like above will always display the chooser
         //startActivity(Intent.createChooser(i, getResources().getText(R.string.share))); 
     }
    

    Create a method with an ACTION_SEND intent

    @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case R.id.menu_item_share:
                actionShare();
                return true;
            default:
                return super.onOptionsItemSelected(item);
            }
        }
    

    And finally call to this method from onOptionsItemSelected

    more info ->Sending Simple Data to Other Apps

提交回复
热议问题