Android 在ActionBar中添加轻松共享操作
我有问题。我一直在遵循很多指南,但仍然无法让我的共享按钮正常工作。我在ActionBar中看到了图标,但当我按下时,android:showaAction=“always”时什么也没有发生。但是当安卓:showAsAction=“never”运行时,它就正常了。我只希望共享图标总是显示在ActionBar中。我做错了什么?请帮忙 这是我的密码:Android 在ActionBar中添加轻松共享操作,android,android-intent,android-actionbar,share-button,Android,Android Intent,Android Actionbar,Share Button,我有问题。我一直在遵循很多指南,但仍然无法让我的共享按钮正常工作。我在ActionBar中看到了图标,但当我按下时,android:showaAction=“always”时什么也没有发生。但是当安卓:showAsAction=“never”运行时,它就正常了。我只希望共享图标总是显示在ActionBar中。我做错了什么?请帮忙 这是我的密码: public class Main extends Activity { private ShareActionProvider mShare
public class Main extends Activity {
private ShareActionProvider mShareActionProvider;
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
MenuItem item = menu.findItem(R.id.shareButton);
mShareActionProvider = (ShareActionProvider) item.getActionProvider();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.shareButton:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
String shareBody = "Check it out";
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Subject");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
startActivity(Intent.createChooser(sharingIntent, "Share via"));
return true;
case R.id.aboutButton:
Intent intent = new Intent(this, About.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
这是我的menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/shareButton"
android:actionProviderClass="android.widget.ShareActionProvider"
android:title="@string/share"
android:showAsAction="always"/> **---> when I put here "NEVER" then it works! But I want Share to be always as icon**
<item
android:id="@+id/aboutButton"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="never"
android:title="@string/about_dev"/>
</menu>
**--->当我把“从不”放在这里时,它就起作用了!但我希望共享永远是一个图标**
请尝试“意向共享=新意向(意向.操作\u发送)”。
你似乎把一切都做对了 如果您没有找到解决方案,请尝试获取ShareActionProvider
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu, menu);
mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.share)
.getActionProvider();
mShareActionProvider.setShareIntent(doShare());
return true;
}
而doShare()
将是:
public Intent doShare() {
// populate the share intent with data
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "Put whatever you want");
return intent;
}
在
而不是使用
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
使用:
有关更多信息,请参阅以下链接:
按照这种方法,在创建选项菜单时,我必须知道要共享的数据。但是,当我只知道在实际单击按钮时共享哪些数据时,该怎么办?
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
mShareActionProvider.setShareIntent(sharingIntent);