วิธีเปิดใช้งานปุ่ม“ แชร์” ในแอพ 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
ในการเพิ่มปุ่มแบ่งปันประเภทนี้คุณต้องใช้ 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

คัดลอกมาจากcode.tutsplus.com/tutorials/… .
CoolMind

ใช้งานได้ดีสำหรับฉันยกเว้น Facebook มันไม่แสดงอะไรเลยน่าเสียดาย
Evaggelos Manousakis

จะเพิ่มรูปภาพได้อย่างไร? ช่วยแนะนำหน่อยได้ไหม ??
Tasnuva oshin

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

ใน 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 :"))
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.