Jak aktywować przycisk „Udostępnij” w aplikacji na Androida?


109

Chcę dodać przycisk „Udostępnij” do mojej aplikacji na Androida.

Tak

:

Dodałem przycisk „Udostępnij”, ale przycisk nie jest aktywny. Klikam, ale nic się nie dzieje.

Mój kod w 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"));
}

Chcę udostępnić tekst na mojej pierwszej karcie (first_tab.xml) lub drugiej karcie (second_tab.xml).

Kod na karcie (xml) (w razie potrzeby):

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


5
Aby dodać ten rodzaj przycisku Udostępnij, musisz użyć ActionBar / ActionBarSherlock i dodać ShareProvider.
h4rd4r7c0r3

Odpowiedzi:


301

Dodaj Buttoni po kliknięciu Buttondodaj ten kod:

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

Przydatne linki:

Do podstawowego udostępniania

Do personalizacji


Dodaj przycisk gdzie? Utworzyłem już element menu z shareikoną na moim pasku akcji
Si8

Witam, W powyższej metodzie wydaje się, że wyświetla wiele aplikacji. Chcę wiedzieć, która aplikacja jest używana do udostępniania i po zakończeniu udostępniania muszę wywołać jedno API. Czy można sprawdzić, z jakiej aplikacji korzystała, a także jak wywołać API po udostępnieniu? Dziękuję ...
patel135

Został skopiowany z code.tutsplus.com/tutorials/… .
CoolMind

Dla mnie działa dobrze, z wyjątkiem Facebooka. Niestety nic tam nie pokazuje.
Evaggelos Manousakis

jak dodać obraz? czy możesz mi zasugerować?
Tasnuva oshin

13

Utwórz przycisk z udziałem identyfikatora i dodaj następujący fragment kodu.

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

Powyższy fragment kodu otworzy selektor udostępniania po kliknięciu przycisku udostępniania. Jednak uwaga ... Fragment kodu udostępniania może nie dawać bardzo dobrych wyników przy użyciu emulatora. Aby uzyskać rzeczywiste wyniki, uruchom fragment kodu na urządzeniu z systemem Android, aby uzyskać prawdziwe wyniki.


4

w kotlinie:

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 :"))
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.