使用android的webview控件访问有道词典的url
-
思考:
- 1.我们要访问的url是什么
- 2.通过什么访问
- 3.访问完后怎样将它显示到我们的webview控件上去
实现:
- 1.URL是uniform resource locator,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源,而且还指明了如何locate这个资源。
例如:http://dict.youdao.com/m/search?keyfrom=dict.mindex&q=good
访问此url会从浏览器上得到good单词的详细信息等 - 2.我们定义的webview控件提供了loadurl(String url)的方法来加载指定的url
- 3.webview控件为我们提供了
“`getSettings().setJavaScriptEnabled(true)//设置WebView属性,能够执行JavaScript脚本
setWebViewClient(WebViewClient webViewclient)//设置web视图客户端
两个方法用来显示到我们的webViwe中去
###实现代码块:
package cn.edu.bzu.youdaoapi;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private Button btnSearch;
private EditText etWord;
private WebView wvSearchResult;
private void bindView() {
btnSearch = (Button) findViewById(R.id.btnSearch);
etWord = (EditText) findViewById(R.id.etWord);
wvSearchResult = (WebView) findViewById(R.id.wvSearchResult);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 获取控件
bindView();
// 点击查询按钮的时候
btnSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strURI = etWord.getText().toString();
//strURI = strURI.trim();// 删除空白字符的开始和结束的字符串
if (!strURI.equals("")) {// 当用户输入的数据不为空的时候
String strURL = "http://dict.youdao.com/m/search?keyfrom=dict.mindex&q="
+ strURI;// 组成向网上发送的url字符串
//设置WebView属性,能够执行JavaScript脚本
wvSearchResult.getSettings().setJavaScriptEnabled(true);
//设置web视图客户端
wvSearchResult.setWebViewClient(new MyWebViewClient());
wvSearchResult.loadUrl(strURL);// 加载给定的URL。
} else {//http://dict.youdao.com/m/search?keyfrom=dict.mindex&vendor=&q=good
Toast.makeText(MainActivity.this, "查询内容为空!",
Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
//web视图客户端
class MyWebViewClient extends WebViewClient
{
public boolean shouldOverviewUrlLoading(WebView view,String url)
{
view.loadUrl(url);
return true;
}
}
}
```
<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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="#FFF5EE"
tools:context=".MainActivity" >
<EditText
android:id="@+id/etWord"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="27dp"
android:background="@android:drawable/edit_text"
android:ems="10"
android:singleLine="true"
android:textColor="#B4CDCD"
android:textColorHint="#782f10" >
<requestFocus />
</EditText>
<WebView
android:id="@+id/wvSearchResult"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignLeft="@+id/etWord"
android:layout_below="@+id/etWord"
android:layout_marginTop="22dp"
android:background="#FFF5EE"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="25sp" />
<Button
android:id="@+id/btnSearch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/wvSearchResult"
android:layout_alignTop="@+id/etWord"
android:onClick="search"
android:text="查询" />
</RelativeLayout>
别忘了加上权限
<uses-permission android:name="android.permission.INTERNET"/>