当前位置: 首页 > 知识库问答 >
问题:

向android WebView片段添加共享操作

秦宏盛
2023-03-14
<item android:id="@+id/menu_item_share"
        android:icon="@drawable/ic_menu_share"
        android:title="@string/menu_item_share"
        app:showAsAction="always"/>
public class WebviewFragment extends Fragment {
    ProgressBar bar;
    WebView myWebView;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message message) {
            switch (message.what) {
                case 1:{
                    webViewGoBack();
                }break;
            }
        }
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View v = inflater.inflate(R.layout.fragment_webview, container, false);
        ;
        myWebView = (WebView) v.findViewById(R.id.WebView);
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.loadUrl("http://www.google.com/");
        WebSettings webSettings = myWebView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //improve webView performance
        myWebView.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
        myWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        myWebView.getSettings().setAppCacheEnabled(true);
        myWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
        webSettings.setDomStorageEnabled(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSettings.setUseWideViewPort(true);
        webSettings.setSavePassword(true);
        webSettings.setSaveFormData(true);
        webSettings.setEnableSmoothTransition(true);
        myWebView.setWebViewClient(new WebViewClient());
}

在mainactivity.java中共享操作

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

            //share app content
            case R.id.menu_item_share: {
                Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.setType("text/plain");
                shareIntent.putExtra(Intent.EXTRA_TEXT, myWebView.getUrl());
                startActivity(Intent.createChooser(shareIntent, "Share This Website!"));
                shareIntent.setPackage("com.whatsapp");
                break; //or, return true;
            }

请帮忙解决问题。

共有1个答案

蓬英逸
2023-03-14

在碎片类中使用这些方法,并在这些方法中添加共享功能:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
// Do something that differs the Activity's menu here
super.onCreateOptionsMenu(menu, inflater);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {

    case R.id.activity_menu_item:

        // Not implemented here
        return false;
    case R.id.fragment_menu_item:

        // Do Fragment menu item stuff here
        return true;

    default:
        break;
}

return false;
}

并在片段的“onCreateView()”方法中添加这一行:

setHasOptionsMenu(true);

希望能奏效!

 类似资料:
  • 我正在学习Android Udacity课程,它已经过时了,所以我尝试通过手动添加一个片段到主活动中来更新它。这段代码构建得很好,但是当应用程序启动时,在android monitor中出现了一个很长的错误。 XML fragment_main.xml activity_main.xml list_itemm_forecast.xml 日志 06-23 11:23:02.878 3095-3095

  • 本文向大家介绍android-fragments 添加片段,包括了android-fragments 添加片段的使用技巧和注意事项,需要的朋友参考一下 示例 静态添加片段 文件:activity_main.xml 文件:fragment1.xml 文件:fragment2.xml 文件:MainActivity.java 文件:Fragment1.java 文件:Fragment2.java 动态

  • 我正在实现一个gallery应用程序,它有一个片段,其中包含一个带有图像的RecyclerView,单击一个图像,我会转到ViewPager循环浏览图像 目前,我正试图实现像本视频中那样的入门动画。问题是动画不起作用,我显然遗漏了一些东西(只是显示与转换相关的代码): 查看页面: GridAdapter: 在MainActivity中,我在onClick中实例化ViewPagerFragment:

  • 动态像scrollview中增添内容(demo中是增添图片)。当增添的图片超过视图宽度时,scrollview可以左右滚动查看完整内容。每增添一张图片,增加按钮会往左移动,清空所有图片后,按钮会滑动回原来的位置。 [Code4App.com]

  • 我想从片段到活动使用返回按钮使用工具栏返回图标。 碎片是我的抽屉菜单项 我该怎么做?

  • 我一直在谷歌搜索这个问题,但还没有找到一个明确的答案,所以我希望有人对windows与Linux的共享内存段有一些了解。 在Windows中,似乎只有内存映射文件的等价物,你必须有一个实际的文件漂浮在某个地方。 我的问题是:这实际上是Windows中唯一的一种共享内存,还是它有一个api来创建非基于文件的共享内存段。