当前位置: 首页 > news >正文

WebView.简单使用_ZC代码

ZC:环境:Win7x64、Eclipse:"eclipse-jee-mars-R-win32__apk__20180122_Win7x64_FQ下载ADT-23.0.7_WBv1.8.0.rar",Adnroid-SDK:"E:\ZC_____Android_Qt\_Run_Env\Android\android-sdk\platform-tools"

 

1、主要的代码:(主要参考网址:Android WebView使用深入浅出 - soaringEveryday - 博客园.html [https://www.cnblogs.com/soaringEveryday/p/4495221.html])

  PS:菜单栏主要参考网址:Android控件之菜单详解 - CSDN博客.html(https://blog.csdn.net/qq_35622606/article/details/77876232)

  创建的是 默认的 BlankProject,下面记录的是 有过修改的文件,没有修改的文件 就没有记录下来了

  1.1、MainActivity.java

package com.example.webview01;

import android.support.v7.app.ActionBarActivity;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;

@SuppressLint("NewApi")
public class MainActivity extends ActionBarActivity
{

    WebView FwebView = null;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        FwebView = (WebView) findViewById(R.id.webView);
        FwebView.loadUrl("http://www.baidu.com/");
        
        // ZC: 禁止使用手机中默认安装的内置WebKit浏览器打开网页
        FwebView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        
    // ***
        
        Button btnBack = (Button) findViewById(R.id.btnBack);
        btnBack.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //Log.i("匿名内部类", "点击事件");
                FwebView.goBack();
            }
        });// btnBack
        Button btnForward = (Button) findViewById(R.id.btnForward);
        btnForward.setOnClickListener(new OnClickListener()
        {
            @Override
            public void onClick(View v)
            { FwebView.goForward(); }
        });// btnForward
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // ZC: 上面貌似是 创建菜单栏并使菜单栏生效的地方,看下面自动产生的英文注释也可明了
        // ZC: 网上看到的 手动创建菜单栏中 关于创建和使之生效的代码 和这里差不多
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
//        if (id == R.id.action_settings) {
//            return true;
//        }
        // ZC: 这里是 菜单栏中的点击事件响应的代码
        if (id == R.id.menu_sub1) {
            FwebView.goBack();
            return true;
        }
        else if (id == R.id.menu_sub2) {
            FwebView.goForward();
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

  1.2、res/layout/activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.webview01.MainActivity" >
    <!-- ZC: 将<RelativeLayout/>里面的这4个属性去掉,APP窗口的表框就没有原来那么粗了(或者 改变它们的值也行)
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
     -->

    <!--
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    -->

    <Button
        android:id="@+id/btnBack"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:text="Back" />
    
    <Button
        android:id="@+id/btnForward"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/btnBack"
        android:layout_alignBottom="@+id/btnBack"
        android:layout_toRightOf="@+id/btnBack"
        android:text="Forward" />
    
    <!-- ZC: 我没看到能直接拖一个WebView到界面上去,一直以为需要另外装包才能有WebView,没想到直接下面这样就行... -->
    <WebView
        android:id="@+id/webView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/btnBack" />

    

</RelativeLayout>

  1.3、res/menu/main.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.example.webview01.MainActivity" >
<!-- 
    <item
        android:id="@+id/action_settings"
        android:orderInCategory="100"
        android:title="@string/action_settings"
        app:showAsAction="never"/>
 -->
     <!-- ZC: 上面这个是创建工程自动生成的,下面是自己测试使用的 -->
    <item
        android:id="@+id/menu_new"
        android:icon="@android:drawable/ic_menu_help"
        android:title="新建"/>
    <item
        android:id="@+id/menu_delete"
        android:icon="@android:drawable/ic_menu_delete"
        android:title="删除"/>
    <item android:title="子菜单">
        <menu >
            <item android:id="@+id/menu_sub1"
                android:title="子菜单1"/>
            <item android:id="@+id/menu_sub2"
                android:title="子菜单2"/>
        </menu>
    </item>

</menu>

  1.4、AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.webview01"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <!-- 我把这个权限的语句写到 activity_main.xml中去了,导致APP闪退... -->
    <uses-permission android:name="android.permission.INTERNET" /> 
</manifest>

 

2、

3、

4、 

5、

 

转载于:https://www.cnblogs.com/codeskilla/p/9419003.html

相关文章:

  • StringUtils工具类用法
  • 推荐一个React的管理后台框架
  • JQuery FullCalendar(二)
  • 在Pd中取消Code Name 同步
  • QTREE5 - Query on a tree V(LCT)
  • C/C++ Volatile关键词深度剖析
  • word2vec原理(一) CBOW与Skip-Gram模型基础——转载自刘建平Pinard
  • Treap实现的名次树
  • 最短路径SPFA算法(邻接表存法)
  • python 读取文件基本格式
  • Spring注入静态变量
  • Hadoop的hdfs api操作
  • 反射获取枚举的属性注释
  • 各种卷积结构原理及优劣总结
  • linux 程序管理
  • Angular数据绑定机制
  • IDEA 插件开发入门教程
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • Xmanager 远程桌面 CentOS 7
  • 百度小程序遇到的问题
  • 高程读书笔记 第六章 面向对象程序设计
  • 工作手记之html2canvas使用概述
  • 关于springcloud Gateway中的限流
  • 诡异!React stopPropagation失灵
  • 前端之React实战:创建跨平台的项目架构
  • 实战|智能家居行业移动应用性能分析
  • 使用common-codec进行md5加密
  • 使用Gradle第一次构建Java程序
  • 学习JavaScript数据结构与算法 — 树
  • 学习笔记TF060:图像语音结合,看图说话
  •  一套莫尔斯电报听写、翻译系统
  • 2017年360最后一道编程题
  • HanLP分词命名实体提取详解
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • ​​​​​​​​​​​​​​Γ函数
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​一些不规范的GTID使用场景
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (七)c52学习之旅-中断
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)Java算法:二分查找
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .Net MVC4 上传大文件,并保存表单
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .net6Api后台+uniapp导出Excel
  • .NET开发不可不知、不可不用的辅助类(一)
  • @Bean, @Component, @Configuration简析
  • [100天算法】-实现 strStr()(day 52)
  • [2013][note]通过石墨烯调谐用于开关、传感的动态可重构Fano超——
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [AIGC] Redis基础命令集详细介绍