Android应用实例---有道词典
程序员文章站
2022-06-01 10:29:40
...
相关控件:
SearchView控件:
SearchView简单用法:http://blog.csdn.net/u010214991/article/details/48437209
http://blog.csdn.net/airsaid/article/details/51087226
关于各种搜索: http://android.xsoftlab.net/guide/topics/search/index.html
WebView控件:WebView中提供了很多方法,例如,我们可以使用canGoBack()方法判断是否能够从该网页返回上一个打开的网页;使用getTitle()和getUrl()方法获得当前网页的标题和URL路径;使用loadUrl(String url)方法加载所要打开的网页等等。
下面开始实现有道词典的查询功能。运行效果为:
activity_main.xml文件代码如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bzu.edu.cn.happydirectory.MainActivity">
<SearchView
android:id="@+id/sv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<!-- 为SearchView定义自动补齐的ListView-->
<WebView
android:id="@+id/lv"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
main_activity.java代码如下:
package bzu.edu.cn.happydirectory;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.SearchView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private static SearchView searchView;
private static WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
searchView= (SearchView) findViewById(R.id.sv);
webView= (WebView) findViewById(R.id.lv);
searchView.setSubmitButtonEnabled(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
String strURI = (query);
strURI = strURI.trim();
//如果查询内容为空提示
if (strURI.length() == 0) {
Toast.makeText(getApplicationContext(), "查询内容不能为空!", Toast.LENGTH_LONG)
.show();
}
//否则则以参数的形式从http://dict.youdao.com/m取得数据,加载到WebView里.
else {
String strURL = "http://dict.youdao.com/m/search?keyfrom=dict.mindex&q="
+ strURI;
webView.loadUrl(strURL);
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
return false;
}
});
}
}