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)または2番目のタブ(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年

回答:


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

こんにちは、上記の方法では複数のアプリケーションを表示しているようです。共有に使用したアプリケーションを知りたい。共有が完了したら、1つのAPIを呼び出さなければならない。使用されているアプリケーションと、共有後にAPIを呼び出す方法を確認することはできますか?ありがとう...
patel135 '06 / 06/06

これはcode.tutsplus.com/tutorials/…からコピーされました
CoolMind 2018

Facebook以外は問題なく動作します。残念ながら、そこには何も表示されません。
Evaggelos Manousakis 2018

画像を追加するには?教えてもらえますか?
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

コトリンで:

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.