Android App - Adding A "share" Button To Share The App On Social Networks


Answer :

Solution 1: Launch ACTION_SEND Intent

When launching a SEND intent, you should usually wrap it in a chooser (through createChooser(Intent, CharSequence)), which will give the proper interface for the user to pick how to send your data and allow you to specify a prompt indicating what they are doing.

Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND);  # change the type of data you need to share,  # for image use "image/*" intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT, URL_TO_SHARE); startActivity(Intent.createChooser(intent, "Share")); 

Solution 2: Use ShareActionProvider

If you are just looking to add a Share button in Overflow Menu, also have a look at ShareActionProvider.

public boolean onCreateOptionsMenu(Menu menu) {     getMenuInflater().inflate(R.menu.share, menu);     MenuItem item = menu.findItem(R.id.share_item);     actionProvider = (ShareActionProvider) item.getActionProvider();      // Create the share Intent     String shareText = URL_TO_SHARE;     Intent shareIntent = ShareCompat.IntentBuilder.from(this)         .setType("text/plain").setText(shareText).getIntent();     actionProvider.setShareIntent(shareIntent);     return true; } 

Hope this helps. :)


As explained on Android Developers on this link: http://developer.android.com/training/sharing/shareaction.html

you have to add this menu item:

<item         android:id="@+id/menu_item_share"         android:showAsAction="ifRoom"         android:title="Share"         android:actionProviderClass=             "android.widget.ShareActionProvider" /> 

Then add the following code in Activity:

private ShareActionProvider mShareActionProvider; ...  @Override public boolean onCreateOptionsMenu(Menu menu) {     // Inflate menu resource file.     getMenuInflater().inflate(R.menu.share_menu, menu);      // Locate MenuItem with ShareActionProvider     MenuItem item = menu.findItem(R.id.menu_item_share);      // Fetch and store ShareActionProvider     mShareActionProvider = (ShareActionProvider) item.getActionProvider();      // Return true to display menu     return true; }  // Call to update the share intent private void setShareIntent(Intent shareIntent) {     if (mShareActionProvider != null) {         mShareActionProvider.setShareIntent(shareIntent);     } } 

Comments

Popular posts from this blog

Converting A String To Int In Groovy

"Cannot Create Cache Directory /home//.composer/cache/repo/https---packagist.org/, Or Directory Is Not Writable. Proceeding Without Cache"

Android How Can I Convert A String To A Editable