安卓第一个项目(简单Web浏览器)

src文件夹下java代码——Web.java:

//省略导包内容... 下载运行后添加一下就行了 

public class Web extends Activity {

WebView web;

ProgressBar buffer;

String urlInputs;


/*

* 功能概要: 1.用WebView控件实现简单浏览器的开发 2.实现了网页浏览器的简单功能。 3.能够浏览网页中的所有内容,但不支持视频的播放。

* 开发步骤: 1.在XML布局 添加 WebView组件 和 圆形网页缓冲进度组件 2.java代码 中取到 组件 3.为web组件添加主页 网址

* 设置 setWebViewClient 4.添加 ProgressBar进度条 3种状态 的方法并设置相应的操作 5.在清单文件里 设置上网权限

* 编程要点: 1.使用WebView控件,用于网页的显示 2.设置WebView的属性,使其支持更多的功能

* 3.当用户点击网页中的链接,仍然用该网页加载 4.设置权限,使app具有上网权限。 5.Activity的布局等。

*/


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_web);

// 重 XML布局 中 获取 控件 ID

Button go = (Button) findViewById(R.id.go);

Button back = (Button) findViewById(R.id.back);

Button homepage = (Button) findViewById(R.id.homepage);

web = (WebView) findViewById(R.id.web);

buffer = (ProgressBar) findViewById(R.id.buffer);

// 设置WebView属性,能够执行Javascript脚本

web.getSettings().setJavaScriptEnabled(true);

web.loadUrl("http://123hw.com/"); // 设置打开的第一个页面(主页):123好网址

// 为按键 绑定 监听器

// 用户输入网址 go 转到 按钮 点击 事件

go.setOnClickListener(new OnClickListener() {


@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub


//不明白 下面这条 语言 放在 这里不是 每点击一次 都要执行一次

EditText urlInput = (EditText) findViewById(R.id.urlInput);

urlInputs = String.valueOf(urlInput.getText()); //获取用户输入的网址

// urlInputs="http://e.zhlzw.com/";

System.out.println("您将访问..."+ urlInputs);

urlInputs="http://"+ urlInputs;

// System.out.println("您将访问..."+ urlInputs);

 

web.loadUrl(urlInputs);

//web.setWebViewClient(new WebViewClient(){

//

//@Override

//public boolean shouldOverrideUrlLoading(WebView view,

//String url) {

//// TODO Auto-generated method stub

//view.loadUrl(urlInputs);

//return super.shouldOverrideUrlLoading(view, url);

//}

//

//});

}

});

//返回 按钮 点击事件

back.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

web.goBack();

System.out.println("您点击了返回按钮");

}

});

//主页 按钮 点击事件

homepage.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

web.loadUrl("http://123hw.com/");

System.out.println("您点击了主页按钮");

}

});


web.setWebViewClient(new WebViewClient() {


// @Override

// public boolean shouldOverrideUrlLoading(WebView view, String url)

// {

// // TODO Auto-generated method stub

//

// view.loadUrl("http://e.zhlzw.com/");

// System.out.println("程序 走到 此处,测试 网址 是否访问");

// return super.shouldOverrideUrlLoading(view, url);

// }


// 网页加载 完成 圆形缓冲图标消失

@Override

public void onPageFinished(WebView view, String url) {

// TODO Auto-generated method stub

super.onPageFinished(view, url);

buffer.setVisibility(android.view.View.GONE);

}


// 网页加载 开始 圆形缓冲图标转动

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

// TODO Auto-generated method stub

super.onPageStarted(view, url, favicon);

buffer.setVisibility(android.view.View.VISIBLE);

}


// 网页加载 失败 圆形缓冲图标转动

@Override

public void onReceivedError(WebView view, int errorCode,

String description, String failingUrl) {

// TODO Auto-generated method stub

super.onReceivedError(view, errorCode, description, failingUrl);

buffer.setVisibility(android.view.View.VISIBLE);

}


});


}


// class onclik implements OnClickListener {

//

// @Override

// public void onClick(View arg0) {

// // TODO Auto-generated method stub

// switch (arg0.getId()) {

// case R.id.go:

//

// //不明白 下面这条 语言 放在 这里不是 每点击一次 都要执行一次

// EditText urlInput = (EditText) findViewById(R.id.urlInput);

// urlInputs = String.valueOf(urlInput.getText()); //获取用户输入的网址

// System.out.println("您点击了转到按钮...");

// break;

// case R.id.back:

//

// break;

//

// default:

// break;

// }

// }

//

// }

//

@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

// TODO Auto-generated method stub

if (keyCode == KeyEvent.KEYCODE_BACK && web.canGoBack()) {

web.goBack();

System.out.println("您点击了后退");

return true;

}


return super.onKeyDown(keyCode, event);

}


@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.web, menu);

return true;

}


@Override

public boolean onOptionsItemSelected(MenuItem item) {

// TODO Auto-generated method stub

switch (item.getItemId()) {

case R.id.exit:

finish();

break;


default:

break;

}


return super.onOptionsItemSelected(item);

}


}

res文件夹下 layout布局XML——activity_web.xml :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/LinearLayout1"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical"

    tools:context=".Web" >


    <ProgressBar

        android:id="@+id/buffer"

        style="?android:attr/progressBarStyleHorizontal"

        android:layout_width="match_parent"

        android:layout_height="wrap_content" />


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_weight="1"

        android:orientation="horizontal" >


        <EditText

            android:id="@+id/urlInput"

            android:layout_width="280dp"

            android:layout_height="wrap_content"

            android:layout_weight="5"

            android:ems="10" />


        <Button

            android:id="@+id/go"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_weight="1"

            android:text="go" />

    </LinearLayout>


    <WebView

        android:id="@+id/web"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        android:layout_weight="9" />


    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_weight="1"

        android:gravity="center"

        android:orientation="horizontal" >


        <Button

            android:id="@+id/back"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="back" />


        <Button

            android:id="@+id/homepage"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:text="homepage" />

    </LinearLayout>


</LinearLayout>

安卓 清单文件 AndroidManifest.xml :

添加如下权限

 <uses-permission 

        android:name="android.permission.ACCESS_WIFI_STATE"

        />

    <uses-permission 

        android:name="android.permission.ACCESS_NETWORK_STATE"

        />

    <uses-permission 

        android:name="android.permission.INTERNET"

        />

//  项目源码  网盘下载地址

转载于:https://my.oschina.net/beiduoye/blog/645652

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值