1、首先是menu_main.xml中定义一个sharebtn,下面我的代码,需要图标的自行加上,这里就不多说了
menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity"> <item android:id="@+id/action_search" android:title="@string/action_search" android:orderInCategory="100" app:showAsAction="never" /> <item android:id="@+id/action_share" android:title="Share" app:showAsAction="never" app:actionProviderClass="android.support.v7.widget.ShareActionProvider" /> </menu>
2、在onCreateOptionsMenu方法中实现
private ShareActionProvider shareActionProvider; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); MenuItem menuItem=menu.findItem(R.id.action_share); shareActionProvider= (ShareActionProvider)MenuItemCompat.getActionProvider(menuItem); shareActionProvider.setShareIntent(getDefaultIntent()); return true; } private Intent getDefaultIntent() { Intent intent=new Intent(Intent.ACTION_SEND); intent.setType("image/*"); intent.putExtra("Text","test"); return intent; }
这里要注意的是 MenuItem menuItem=menu.findItem(R.id.action_share);和
shareActionProvider=(ShareActionProvider)MenuItemCompat.getActionProvider(menuItem);
还有就是private ShareActionProvider shareActionProvider; 中要选择v7支持包的ShareActionProvider,谷歌的官方文档提供了这种获取ShareActionProvider的方法,之前我在网上看到的好像都用不了。