该案例效果图如下:
实现原理:
"http://dict.youdao.com/m/search?keyfrom=dict.mindex&q=" + str_word;
引号内的内容为有道查词的URL地址,通过变更后方链接的字符串来实现查词
布局代码如下:
<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:background="@drawable/mainbg" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" 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="31dp" android:background="@android:drawable/edit_text" android:ems="10" android:hint="@string/searchHint" android:singleLine="true" android:textColor="#552006" android:textColorHint="#782f10" > <requestFocus /> </EditText> <Button android:id="@+id/btnSearch" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/etWord" android:layout_alignBottom="@+id/etWord" android:layout_marginLeft="16dp" android:layout_toRightOf="@+id/etWord" android:background="@drawable/ibsearchword" android:onClick="searchWord" android:text="@string/serachWord" /> <TextView android:id="@+id/tvSearchResult" 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:textSize="25sp" android:background="@drawable/bg_roundcorner" android:textAppearance="?android:attr/textAppearanceMedium" /> </RelativeLayout>
主要实现代码如下:
public class MainActivity extends Activity { private EditText ed_word =null; private Button search =null; private WebView web =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); search.setOnClickListener(new OnClickListener() { String strURL; @Override public void onClick(View v) { // TODO Auto-generated method stub String str_word =ed_word.getText().toString(); if(str_word!=null){ str_word =str_word.trim(); //去除一下空格 strURL = "http://dict.youdao.com/m/search?keyfrom=dict.mindex&q=" + str_word; //组成请求的url //加载网页 web.loadUrl(strURL); web.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url);//不跳到系统浏览器 return true; } }); //进度条 web.setWebChromeClient(new WebChromeClient(){ public void onProgressChanged(WebView view, int newProgress) { MainActivity.this.setProgress(newProgress*100);//设置进度条 }; }); }else { Toast.makeText(MainActivity.this,"单词不能为空!" , 3000); } } }); } private void initView() { // TODO Auto-generated method stub ed_word =(EditText)findViewById(R.id.et_word); search =(Button) findViewById(R.id.btnSearch); web =(WebView)findViewById(R.id.wvSearchResult); } }
需要注意的是,该案例需要配置联网权限的:
<uses-permission android:name="android.permission.INTERNET"/>