Android控件之WebView
2015-08-17 15:57
405 查看
如何在Android应用中打开Web网站呢?谷歌为我们提供了解决方案,现在就让我们一起看一下WebView控件吧。
为了方便总结,就以实现下面这个效果为主线,进行总结:
首先我们先看一下它的布局文件吧,整个界面分为上下两个部分,上部是一个类似于标题栏的效果,它是由两个Button按钮和一个TextView组成的,下部是一个WebView控件,通过AndroidManifest.xml去除系统的标题(如有不懂,请查阅我的上一遍博客:Android常用属性),已达到上图效果。为方便大家自学广州电脑维修,下面奉上代码:
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<Button
android:id="@+id/quit"
android:layout_gravity="left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
<TextView
android:id="@+id/web"
android:layout_gravity="center"
android:gravity="center"
android:layout_width="222dp"
android:layout_height="wrap_content"
android:layout_weight="1.13" />
<Button
android:id="@+id/news"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="刷新"/>
</LinearLayout>
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
最后我们开始编写我们MainActivity.java:
public class MainActivity extends Activity {
private TextView mTextView;
private WebView mWebView;
private Button mbreak;
private Button mnews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
mTextView = (TextView)findViewById(R.id.web);
mWebView = (WebView)findViewById(R.id.webView);
mbreak = (Button)findViewById(R.id.quit);
mnews = (Button)findViewById(R.id.news);
mbreak.setOnClickListener(new myListener());
mnews.setOnClickListener(new myListener());
mWebView.loadUrl("http://www.baidu.com/");//设置打开的网址
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
mTextView.setText(title);//显示打开的网址信息
}
});
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
}
//按钮点击事件监听
class myListener implements View.OnClickListener{
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.quit :
finish();
break;
case R.id.news :
mWebView.reload();
break;
}
}
}
最后不要忘在AndroidManifest.xml中添加使用网络声明:<uses-permission android:name="android.permission.INTERNET"/>
大功告成,我们的WebView初步介绍到此结束。
为了方便总结,就以实现下面这个效果为主线,进行总结:
首先我们先看一下它的布局文件吧,整个界面分为上下两个部分,上部是一个类似于标题栏的效果,它是由两个Button按钮和一个TextView组成的,下部是一个WebView控件,通过AndroidManifest.xml去除系统的标题(如有不懂,请查阅我的上一遍博客:Android常用属性),已达到上图效果。为方便大家自学广州电脑维修,下面奉上代码:
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:weightSum="1">
<Button
android:id="@+id/quit"
android:layout_gravity="left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="返回"/>
<TextView
android:id="@+id/web"
android:layout_gravity="center"
android:gravity="center"
android:layout_width="222dp"
android:layout_height="wrap_content"
android:layout_weight="1.13" />
<Button
android:id="@+id/news"
android:layout_gravity="right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="刷新"/>
</LinearLayout>
<WebView
android:id="@+id/webView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>
最后我们开始编写我们MainActivity.java:
public class MainActivity extends Activity {
private TextView mTextView;
private WebView mWebView;
private Button mbreak;
private Button mnews;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
public void init(){
mTextView = (TextView)findViewById(R.id.web);
mWebView = (WebView)findViewById(R.id.webView);
mbreak = (Button)findViewById(R.id.quit);
mnews = (Button)findViewById(R.id.news);
mbreak.setOnClickListener(new myListener());
mnews.setOnClickListener(new myListener());
mWebView.loadUrl("http://www.baidu.com/");//设置打开的网址
mWebView.setWebChromeClient(new WebChromeClient(){
@Override
public void onReceivedTitle(WebView view, String title) {
super.onReceivedTitle(view, title);
mTextView.setText(title);//显示打开的网址信息
}
});
mWebView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
}
//按钮点击事件监听
class myListener implements View.OnClickListener{
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.quit :
finish();
break;
case R.id.news :
mWebView.reload();
break;
}
}
}
最后不要忘在AndroidManifest.xml中添加使用网络声明:<uses-permission android:name="android.permission.INTERNET"/>
大功告成,我们的WebView初步介绍到此结束。
相关文章推荐
- java-WEB中的监听器Lisener
- GUI - Web前端开发框架
- Extjs4.0 最新最全视频教程
- MyEclipse Web Project转Eclipse Dynamic Web Project
- axis备忘
- Erlang实现的一个Web服务器代码实例
- 防止网页脚本病毒执行的方法-from web
- 自学成才的秘密:115个 web Develop 资源
- 使用批处理修改web打印设置笔记 适用于IE
- Apache Web让JSP“动”起来
- web下载的ActiveX控件自动更新
- 推荐六款WEB上传组件性能测试与比较第1/10页
- 关于三种主流WEB架构的思考
- 使用 Iisext.vbs 列出 Web 服务扩展文件的方法
- 使用 Iisext.vbs 删除 Web 服务扩展文件的方法
- 使用 iisext.vbs 禁用 Web 服务扩展的方法
- 用vbs 实现从剪贴板中抓取一个 URL 然后在浏览器中打开该 Web 站点
- web标准知识——从p开始,循序渐进
- web标准知识――用途相似的标签
- Shell脚本实现的一个简易Web服务器例子分享