我有问题.我遵循了很多指南,但仍然无法让我的Share按钮工作.我在Actionbar中显示了图标,但是当我按下时没有任何事情发生在android:showAsAction =“always”.但是当androID:showAsAction =“never”时它会起作用.我只想让分享图标始终显示在Actionbar中.我做错了什么?请帮忙
这是我的代码:
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>
解决方法:
如果您没有找到解决方案,请尝试使用此方法获取ShareActionProvIDer
@OverrIDepublic 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;}
总结 以上是内存溢出为你收集整理的android – 在ActionBar中添加一个简单的共享 *** 作全部内容,希望文章能够帮你解决android – 在ActionBar中添加一个简单的共享 *** 作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)