一.WebView
Webview 是一个基于webkit的引擎,可以解析DOM 元素,展示html页面的控件,我们可以通过WebView来访问网页。
1.基本使用:
- 访问网页: webView.loadUrl(“http://www.baidu.com”);
- 设置为通过WebView显示网页,否则系统默认会通过手机中的浏览器打开网页:
wb.setWebViewClient(new WebViewClient());
2.最简单的demo:
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=".MainActivity" >
<WebView
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
MainActivity.java文件:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView wb = (WebView)findViewById(R.id.webview);
wb.loadUrl("http://www.baidu.com");
wb.setWebViewClient(new WebViewClient());
}
}
效果:
3.注意:
Android APP对百度进行访问必须打开INTERNET权限:
- AndroidManifest.xml->Permissions->add->Uses Permission->Name选择INTERNET
- 直接在AndroidManifest.xml文件上加上
<uses-permission android:name="android.permission.INTERNET"/>
二.小练手
1.EditView补充内容
- hint属性提示输入的内容:android:hint=“内容”
- EditView响应回车并处理回车中的业务:
EditText ed = (EditText)findViewById(R.id.ed);//获取组件id
ed.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//需要处理的业务
return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);
}
});
2.案例
编写一个通过EditView输入网址,按下回车,WebView根据网址访问的小案例。
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=".MainActivity" >
<LinearLayout
android:id="@+id/ll"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/ed"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:hint="网址:"/>
</LinearLayout>
<WebView
android:id="@+id/webview"
android:layout_below="@id/ll"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
界面如图:
MainActivity.java文件:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView wb = (WebView)findViewById(R.id.webview);
final EditText ed = (EditText)findViewById(R.id.ed);
wb.setWebViewClient(new WebViewClient());
//EditView回车响应
ed.setOnEditorActionListener(new TextView.OnEditorActionListener(){
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//处理业务
String str = ed.getText().toString();
wb.loadUrl(str);
return (event.getKeyCode() == KeyEvent.KEYCODE_ENTER);
}
});
}
}
在EditView中输入百度的网址,按下回车:
在EditView中输入一篇博客文章的网址,按下回车: