2013-06-18 16 views
87

Android uygulamamda "Paylaş" butonunu eklemek istiyorum. OAndroid uygulamasında "Paylaş" butonu nasıl aktive edilir?

:

gibi

ben "Paylaş" düğmesini eklendi, ancak düğmesi etkin değildir. Ben tıklıyorum ama hiçbir şey olmuyor. MainActivity.java içinde

Kodum:

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

benim ilk sekme (first_tab.xml) veya ikinci sekmesinde (second_tab.xml) metni paylaşmak istiyorum. sekmede

Kodu (xml) (Eğer ihtiyaç):

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

Maalesef ingilizcem

+5

Bu tür bir Paylaş düğmesini eklemek için ActionBar/ActionBarSherlock'u kullanmanız ve ShareProvider'ı eklemeniz gerekir. – hardartcore

cevap

235

ekle Button ve Button tıklamasıyla bu kodu ekleyin:

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

Yararlı linkler:

For customization

+0

Düğmeyi nereye ekleyin? Zaten menü çubuğunda – Si8

+2

eylem çubuğumdaki 'share' simgesine sahip bir menü öğesi oluşturdum. Bu kodu ekleyin –

+0

Merhaba, Yukarıdaki yöntemde birden fazla uygulama görünüyor. Paylaşım için hangi uygulamanın kullanıldığını ve paylaşımın ardından bir API'yi çağırmak istediğimi bilmek istiyorum. Kullanılmakta olan uygulamayı ve ayrıca paylaştıktan sonra API'yi nasıl arandığını kontrol etmek mümkün mü? Teşekkürler ... – 135

2

For basic sharing

id payıyla bir düğme oluşturun ve aşağıdaki kod parçacığını ekleyin.

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

Yukarıdaki kod pasajı, paylaşım düğmesi tıklama eyleminde paylaşım seçiciyi açar. Ancak, not ... Paylaşım kod snippet'i, emülatör kullanılarak çok iyi sonuçlar vermeyebilir. Gerçek sonuçlar için gerçek sonuçları elde etmek için android cihazdaki kod snippet'ini çalıştırın.

İlgili konular