2013-06-18 9 views
87

Chcę dodać przycisk "Udostępnij" do mojej aplikacji na Androida.Jak aktywować przycisk "Udostępnij" w aplikacji na Androida?

Jak ten

:

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ę podzielić tekst w mojej pierwszej zakładce (first_tab.xml) lub drugiej zakładce (second_tab.xml).

kod w zakładce (XML) (jeśli potrzeba):

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

Niestety mój angielski

+5

Aby dodać ten rodzaj przycisku Udostępnij, należy użyć ActionBar/ActionBarSherlock i dodać ShareProvider. – hardartcore

Odpowiedz

235

Dodaj Button i kliknięcia Button dodać 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:

For basic sharing

For customization

+0

Dodaj przycisk gdzie? Stworzyłem już element menu z ikoną 'share' w moim pasku akcji – Si8

+2

w pozycji menu kliknij wydarzenie dodaj ten kod –

+0

Witam, W powyższej metodzie wydaje się wyświetlać wiele aplikacji. Chcę wiedzieć, która aplikacja służy do udostępniania i po zakończeniu udostępniania muszę zadzwonić do jednego interfejsu API. Czy można sprawdzić, która aplikacja była używana, a także jak wywołać API po udostępnieniu? Dziękuję ... – 135

2

Utwórz przycisk z udziałem id i dodać 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 okno wyboru akcji po kliknięciu akcji akcji. Należy jednak pamiętać ... Fragment kodu udziału może nie wyświetlać bardzo dobrych wyników za pomocą emulatora. Aby uzyskać rzeczywiste wyniki, uruchom fragment kodu na urządzeniu z Androidem, aby uzyskać prawdziwe wyniki.

Powiązane problemy