Як активувати кнопку "Поділитися" в додатку для Android?


109

я хочу додати кнопку "Поділитися" до своєї програми для Android.

Щось схоже на те

:

Я додав кнопку "Поділитися", але кнопка не активна. Я клацаю, але нічого не відбувається.

Мій код в 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"));
}

Я хочу поділитися текстом у першій вкладці (first_tab.xml) або в другій вкладці (second_tab.xml).

Код у вкладці (xml) (за потреби):

<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
Щоб додати цю кнопку кнопки Share, потрібно використовувати ActionBar / ActionBarSherlock та додати ShareProvider.
h4rd4r7c0r3

Відповіді:


301

Додайте Buttonі натисніть, щоб Buttonдодати цей код:

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

Корисні посилання:

Для базового обміну

Для налаштування


Куди додати кнопку? Я вже створив пункт меню з shareпіктограмою в моїй панелі дій
Si8

Здравствуйте, у наведеному вище способі, здається, відображається кілька додатків. Я хочу знати, яку програму використовували для спільного доступу, і після завершення спільного доступу я повинен зателефонувати в один API. Чи можливо перевірити, яка програма використовується, а також як викликати API після спільного використання? Дякую ...
patel135

Це було скопійовано з коду.tutsplus.com/tutorials/… .
CoolMind

Добре працює для мене, крім Facebook. Це нічого, на жаль, не показує.
Еваггелос Манусакіс

як додати зображення? Ви можете, будь ласка, запропонуйте мені ??
Таснува ошин

13

Створіть кнопку із спільним ідентифікатором та додайте наступний фрагмент коду.

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

Вищенаведений фрагмент коду відкриє програму вибору спільного доступу при натисканні кнопки спільного доступу. Однак зауважте ... Фрагмент коду загального доступу може не дати дуже хороших результатів за допомогою емулятора. Для отримання фактичних результатів запустіть фрагмент коду на пристрої Android, щоб отримати реальні результати.


4

в котліні:

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 :"))
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.