Android 앱에서 "공유"버튼을 활성화하는 방법은 무엇입니까?


109

내 안드로이드 앱에 "공유"버튼을 추가하고 싶습니다.

그렇게

:

"공유"버튼을 추가했지만 버튼이 활성화되지 않았습니다. 클릭했지만 아무 일도 일어나지 않습니다.

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 2013-06-18

답변:


300

추가 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

ID 공유가있는 버튼을 만들고 다음 코드 스 니펫을 추가합니다.

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.