スポンサーリンク
共有ボタンから表示中の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を使用しないと情報を連携できない。
これはまた別の機会に。
スポンサーリンク
スポンサーリンク