Làm thế nào để kích hoạt nút "Chia sẻ" trong ứng dụng Android?


109

tôi muốn thêm nút "Chia sẻ" vào ứng dụng Android của mình.

Như thế

:

Tôi đã thêm nút "Chia sẻ", nhưng nút này không hoạt động. Tôi bấm vào, nhưng không có gì xảy ra.

Mã của tôi trong 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"));
}

Tôi muốn chia sẻ văn bản trong tab đầu tiên (first_tab.xml) hoặc tab thứ hai (second_tab.xml).

Mã trong tab (xml) (Nếu cần):

<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
Để thêm loại nút Chia sẻ này, bạn cần sử dụng ActionBar / ActionBarSherlock và thêm ShareProvider.
h4rd4r7c0r3

Câu trả lời:


300

Thêm một Buttonvà khi nhấp vào Buttonthêm mã này:

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

Liên kết hữu ích:

Để chia sẻ cơ bản

Để tùy chỉnh


Thêm nút ở đâu? Tôi đã tạo một mục menu với sharebiểu tượng trong Thanh tác vụ của mình
Si8

Xin chào, Trong phương pháp trên, nó dường như hiển thị nhiều ứng dụng. Tôi muốn biết ứng dụng nào được sử dụng để chia sẻ và sau khi chia sẻ xong, tôi phải gọi một API. Có thể kiểm tra ứng dụng nào đã sử dụng và cách gọi API sau khi chia sẻ không? Cảm ơn bạn ...
patel135

Nó đã được sao chép từ code.tutsplus.com/tutorials/… .
CoolMind

Hoạt động tốt với tôi ngoại trừ Facebook. Nó không hiển thị bất cứ điều gì ở đó, thật không may.
Evaggelos Manousakis

làm thế nào để thêm một hình ảnh? bạn có thể vui lòng gợi ý cho tôi không ??
Tasnuva oshin

13

Tạo một nút có chia sẻ id và thêm đoạn mã sau.

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

Đoạn mã trên sẽ mở trình chọn chia sẻ trên hành động nhấp vào nút chia sẻ. Tuy nhiên, lưu ý ... Đoạn mã chia sẻ có thể không cho kết quả tốt bằng trình giả lập. Để có kết quả thực tế, hãy chạy đoạn mã trên thiết bị Android để có kết quả thực.


4

trong 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 :"))
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.