我试过这个,但显然在onCreateOptionsMenu中不存在这个URL.如何将其移动到onoptionsItemsSelected?
private ShareActionProvIDer mShareActionProvIDer;@OverrIDepublic boolean onoptionsItemSelected(MenuItem item) { // Todo auto-generated method stub return super.onoptionsItemSelected(item);} @OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main,menu); MenuItem item = menu.findItem(R.ID.menu_item_share); mShareActionProvIDer = (ShareActionProvIDer)item.getActionProvIDer(); mShareActionProvIDer.setShareHistoryfilename( ShareActionProvIDer.DEFAulT_SHARE_HISTORY_file_name); mShareActionProvIDer.setShareIntent(createShareIntent()); return true; } private Intent createShareIntent() { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT,web.getUrl()); return shareIntent; }解决方法 上面的代码不起作用,因为onCreateOptionsMenu只调用一次,第一次显示选项菜单.
解决这个问题非常简单.当调用onoptionsItemSelected时,我们正在构建我们的Intent.这是当选择了膨胀菜单的任何资源时.如果所选项目是共享资源,则执行shareURL,现在构建并启动Intent.
@OverrIDepublic boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_main,menu); return true;}@OverrIDepublic final boolean onoptionsItemSelected(MenuItem item) { switch (item.getItemID()) { case R.ID.menu_item_share: shareURL(); } return super.onoptionsItemSelected(item);}private voID shareURL() { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("text/plain"); shareIntent.putExtra(Intent.EXTRA_TEXT,web.getUrl()); startActivity(Intent.createChooser(shareIntent,"Share This!"));}
我没有测试上面的代码示例.既不是在实际设备上也不是在Java编译器上.不过它应该可以帮助您解决问题.
总结以上是内存溢出为你收集整理的android – 将URL从WebView传递到ShareActionProvider?全部内容,希望文章能够帮你解决android – 将URL从WebView传递到ShareActionProvider?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)