jeudi 29 mars 2012

Partager un texte sur Twitter, Facebook, etc. [Tutoriel Android n°23]



Nous allons voir dans ce tutorial, comment faire pour partager un texte, que l’on aura saisi dans un EditText, sur Twitter, Facebook ou toutes autres applications qui permettent le partage de message (c’est à dire par mail, sms, et toutes les applications du style Friend Stream, Peep, etc…)

Nous allons utiliser une interface graphique très simple, qui se compose d’un EditText et d’un bouton pour déclencher le partage. Voici donc le contenu du main.xml :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<EditText  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/edittext"
    />
 
<Button
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
 android:id="@+id/share"
    android:text="Partager"
    />
</LinearLayout>
On déclare notre EditText et notre Button (pour une meilleur lisibilité dans le code) :
private EditText text;
private Button share;
On les relie avec l’interface graphique
text = (EditText)findViewById(R.id.edittext);
share = (Button)findViewById(R.id.share);
On créer un OnClickListener pour lancer l’action de partage lorsque le Button est appuyer.
share.setOnClickListener(
        new OnClickListener() {
  @Override
  public void onClick(View v) {
   final Intent MessIntent = new Intent(Intent.ACTION_SEND);
          MessIntent.setType("text/plain");
          MessIntent.putExtra(Intent.EXTRA_TEXT, text.getText().toString());
          VotreActivity.this.startActivity(Intent.createChooser(MessIntent, "Partager avec..."));
  }
        }
);


Examinons ce code:

>>> Création de l’Intent, MessIntent est le nom donner, à vous de choisir le votre =D
final Intent MessIntent = new Intent(Intent.ACTION_SEND);
>>> Définition du type d’Intent. J’en ai essayer d’autre mais lui seul permet d’utiliser toutes les applications disponibles.
MessIntent.setType("text/plain");
>>> Définition du texte (on récupère le texte de l’EditText) à publier sur Twitter, Facebook ou autres.
MessIntent.putExtra(Intent.EXTRA_TEXT, text.getText().toString());
>>> Lancement de l’Intent créer précédemment. MessIntent est l’Intent créer, et « Partager avec…. » correspond au titre de la boite de dialogue qui s’ouvrira pour vous proposer l’application à utiliser pour partager votre texte.
VotreActivity.this est le nom de votre activité en cours, qui est donc à remplacer par la votre).
VotreActivity.this.startActivity(Intent.createChooser(MessIntent, "Partager avec..."));
Vous savez désormais comment envoyer un message sur les réseaux sociaux ou autres. Je vous met deux petites screens pour que vous voyez ce que vous devriez obtenir :
 
Je partage en « bonus » une modification simple du code qui vous permettra d’ouvrir Gmail avec une adresse et un sujet pré-rempli.
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "SujetDuMessage");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"VotreEmail@gmail.com"});
VotreActivity.this.startActivity(Intent.createChooser(emailIntent, "Email Envoyer..."));


Je pense qu’il n’est pas nécessaire d’expliquer ce code qui ressemble beaucoup au précédent néanmoins si vous avez des questions, n’hésitez pas. En tout cas pré-remplir un mail peut être utile pour avoir des retour sur vos application par les utilisateurs.

Cette article a été rédigé par TecKnologikS (merci à lui ). Pour le remercier, vous pouvez télécharger ses applications et surtout faire vos retours pour qu’il puisse les améliorer : Verbes Irréguliers Anglais,Des Coquins, Hasard.

Si vous avez besoin d’un retour sur vos applications n’hésitez pas à lui envoyer un mail pour lui demander : tecknologiksdev [at] gmail [point] com (remplacer [at] par @ et [point] par .)

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free Android website | Bloggerized by wassim El mririe - Ramzi Essid | TO Best Web Host