Comment activer le bouton «Partager» dans l'application Android?

109

je veux ajouter le bouton "Partager" à mon application Android.

Comme ça

:

J'ai ajouté le bouton "Partager", mais le bouton n'est pas actif. Je clique, mais rien ne se passe.

Mon code dans MainActivity.java:

private ShareActionProvider mShareActionProvider;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.share_menu, menu);
    getMenuInflater().inflate(R.menu.main, menu);
    MenuItem item = menu.findItem(R.id.share_menu);
    mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share_menu).getActionProvider();
    mShareActionProvider.setShareIntent(getDefaultShareIntent());

    return true;
}

{
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");
    sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text");
    sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject");
    startActivity(Intent.createChooser(sharingIntent, "Share using"));
}

Je souhaite partager du texte dans mon premier onglet (first_tab.xml) ou deuxième onglet (second_tab.xml).

Code dans l'onglet (xml) (si besoin):

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/background_color"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity$DummySectionFragment" >

<TextView
    android:id="@+id/section_label1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"
    android:text="@string/text"
    android:textColor="@color/text_color" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/sprite" />

Jésus personnel
la source
5
Pour ajouter ce type de bouton Partager, vous devez utiliser ActionBar / ActionBarSherlock et ajouter ShareProvider.
h4rd4r7c0r3

Réponses:

301

Ajoutez un Buttonet cliquez sur le Buttonajouter ce code:

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); 
sharingIntent.setType("text/plain");
String shareBody = "Here is the share content body";
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share via"));

Liens utiles:

Pour le partage de base

Pour la personnalisation

Basavaraj Hampali
la source
Ajouter le bouton où? J'ai déjà créé un élément de menu avec l' shareicône dans ma barre d'action
Si8
Bonjour, Dans la méthode ci-dessus, il semble afficher plusieurs applications. Je veux savoir quelle application utilisée pour le partage et une fois le partage terminé, je dois appeler une API. Est-il possible de vérifier quelle application utilisée et comment appeler l'API après le partage? Merci ...
patel135
Il a été copié à partir de code.tutsplus.com/tutorials/… .
CoolMind
Fonctionne bien pour moi sauf pour Facebook. Ça ne montre rien là-bas, malheureusement.
Evaggelos Manousakis
comment ajouter une image? pouvez-vous me suggérer?
Tasnuva oshin le
13

Créez un bouton avec un partage d'identifiant et ajoutez l'extrait de code suivant.

share.setOnClickListener(new View.OnClickListener() {             
    @Override
    public void onClick(View v) {

        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("text/plain");
        String shareBody = "Your body here";
        String shareSub = "Your subject here";
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, shareSub);
        sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
        startActivity(Intent.createChooser(sharingIntent, "Share using"));
    }
});

L'extrait de code ci-dessus ouvrira le sélecteur de partage lors de l'action de clic sur le bouton de partage. Cependant, notez ... L'extrait de code de partage peut ne pas produire de très bons résultats en utilisant l'émulateur. Pour obtenir des résultats réels, exécutez l'extrait de code sur un appareil Android pour obtenir les résultats réels.

Daniel Nyamasyo
la source
4

à kotlin:

val sharingIntent = Intent(android.content.Intent.ACTION_SEND)
sharingIntent.type = "text/plain"
val shareBody = "Application Link : https://play.google.com/store/apps/details?id=${App.context.getPackageName()}"
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "App link")
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody)
startActivity(Intent.createChooser(sharingIntent, "Share App Link Via :"))
mhKarami
la source