Bagaimana cara mengaktifkan tombol "Bagikan" di aplikasi Android?

109

saya ingin menambahkan tombol "Bagikan" ke aplikasi android saya.

Seperti itu

:

Saya menambahkan tombol "Bagikan", tetapi tombol tidak aktif. Saya mengklik, tetapi tidak ada yang terjadi.

Kode saya di 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"));
}

Saya ingin berbagi teks di tab pertama saya (first_tab.xml) atau tab kedua (second_tab.xml).

Kode di tab (xml) (Jika perlu):

<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" />

Pribadi Yesus
sumber
5
Untuk menambahkan tombol Bagikan semacam ini, Anda perlu menggunakan ActionBar / ActionBarSherlock dan menambahkan ShareProvider.
h4rd4r7c0r3

Jawaban:

301

Tambahkan Buttondan di klik Buttontambahkan kode ini:

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"));

Link yang berguna:

Untuk berbagi dasar

Untuk kustomisasi

Basavaraj Hampali
sumber
Tambahkan tombol di mana? Saya sudah membuat item menu dengan shareikon di Bilah Tindakan saya
Si8
Halo, Dalam metode di atas tampaknya menampilkan beberapa aplikasi. Saya ingin tahu aplikasi mana yang digunakan untuk berbagi dan setelah berbagi selesai saya harus memanggil satu API. Apakah mungkin untuk memeriksa aplikasi mana yang digunakan dan juga bagaimana memanggil API setelah berbagi? Terima kasih ...
patel135
Itu telah disalin dari code.tutsplus.com/tutorials/… .
CoolMind
Bekerja dengan baik untuk saya kecuali untuk Facebook. Sayangnya, tidak menunjukkan apa pun di sana.
Evaggelos Manousakis
bagaimana cara menambahkan gambar? bisakah kamu menyarankan saya ??
Tasnuva oshin
13

Buat tombol dengan berbagi id dan tambahkan cuplikan kode berikut.

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"));
    }
});

Potongan kode di atas akan membuka pemilih berbagi pada tindakan klik tombol bagikan. Namun, perhatikan ... Cuplikan kode berbagi mungkin tidak memberikan hasil yang sangat baik menggunakan emulator. Untuk hasil aktual, jalankan cuplikan kode di perangkat android untuk mendapatkan hasil yang sebenarnya.

Daniel Nyamasyo
sumber
4

di 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
sumber