添加分享按钮后,点击如何弹出下拉菜单显示可以分享的应用。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//return super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
MenuItem item = menu.findItem(R.id.menu_item_share);
shareActionProvider = (android.support.v7.widget.ShareActionProvider) MenuItemCompat.getActionProvider(item);
return true;
}
private void setshareIntent(Intent shareIntent){
if (shareActionProvider!=null){
shareActionProvider.setShareIntent(shareIntent);
}
}
private Intent createIntent(){
Intent shareIntent = new Intent();
shareIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT,"hello");
return shareIntent;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//return super.onOptionsItemSelected(item);
switch (item.getItemId()){
case R.id.refresh:
updateWeather();
break;
case R.id.setting:
Intent intent = new Intent(MyApplication.getContext(),SettingsActivity.class);
startActivity(intent);
break;
case R.id.menu_item_share:
setshareIntent(createIntent());
default:
break;
}
return super.onOptionsItemSelected(item);
}
MainActicty
继承AppCompatActivity
menu.xml
文件
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
<group android:id="@+id/hide_shoose">
<item android:id="@+id/refresh"
android:orderInCategory="100"
android:title="刷新" />
<item android:id="@+id/setting"
android:orderInCategory="100"
android:title="设置"/>
<item android:id="@+id/setlocation"
android:orderInCategory="100"
android:title="位置"/>
</group>
<item
android:id="@+id/menu_item_share"
app:showAsAction="ifRoom"
android:title="share"
android:icon="@drawable/chrome48"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/>
</menu>
然后通过intent来实现应用的过滤。现在的问题是无法点击以及弹出下拉菜单;
我是学着http://hukai.me/android-training-course-in-chinese/basics/actionbar/adding-buttons.html的serach Button这部分写的,之前题述不对对不起帮助的各位。
既然
getActionProvider
为 null,那就新建一个:另外:更新评论中的说法,调试后发现,你的问题并不需要实现 menu item 对应的监听器方法:case R.id.menu_item_share:
也就是,这个分支的内容是可以删掉的。