Androidアプリ開発

【Android】ActionBarにShare(共有)ボタンを追加しTwitter連携する方法

共有ボタンから表示中のWebページ情報をSNSなどに連携したい場合、ShareActionProviderを使用する。

 

以下メニュー用レイアウトを作成。

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_share"
        android:orderInCategory="101"
        android:title="ShareTest"
        app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
        app:showAsAction="ifRoom" />
</menu>

 

ActivityのonCreatePotionsMenuに共有ボタンの実装を行う。

/**
 * メニューボタン生成
 */
@Override
public boolean onCreateOptionsMenu(Menu menu) {

	// シェアボタン表示用メニューを追加
	MenuInflater inflater = getMenuInflater();
	inflater.inflate(R.menu.share_menu, menu);
	MenuItem shareItem = menu.findItem(R.id.action_share);
	mShareActionProvider = (ShareActionProvider)
			MenuItemCompat.getActionProvider(shareItem);
	mShareActionProvider.setShareIntent(getDefaultIntent());
	createMenu.addMenu(menu);
	return super.onCreateOptionsMenu(menu);
}

private Intent getDefaultIntent() {
	Intent intent = new Intent(Intent.ACTION_SEND);
	intent.setType("plain/text");
	intent.setType("image/*");
	intent.putExtra(Intent.EXTRA_TEXT, "testです。");
	return intent;
}

 

少しハマった点は、この1行が無いと共有ボタンを押してもTwitterが表示されなかった。

intent.setType(“image/*”);

 

Facebookは共有ボタンで表示されるが、専用のSDKを使用しないと情報を連携できない。

これはまた別の機会に。