如何在WebView中搜索网站?

时间:2014-02-01 08:52:35

标签: java android search browser webview

我有一个带有搜索栏的WebView,但我想让它在特定的网站上搜索。 (在网站的搜索栏上搜索)可以通过添加前缀来完成吗?如果是,那我该怎么做?任何帮助将受到高度赞赏。 感谢

package com.Example.test;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {

   private EditText field;
   private WebView browser;

   @Override        
  protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  field = (EditText)findViewById(R.id.urlField);
  browser = (WebView)findViewById(R.id.webView1);
  browser.setWebViewClient(new MyBrowser());
 }


   public void open(View view){
  String url = field.getText().toString();
  browser.getSettings().setLoadsImagesAutomatically(true);
  browser.getSettings().setJavaScriptEnabled(true);
  browser.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
  browser.loadUrl(url);

  }
  private class MyBrowser extends WebViewClient {
  @Override
  public boolean shouldOverrideUrlLoading(WebView view, String url) {
     view.loadUrl(url);
     return true;
  }
 }

 @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;
}

}

1 个答案:

答案 0 :(得分:0)

首先需要为清单添加INTERNET权限。

<uses-permission android:name="android.permission.INTERNET" />

然后,使用WebView类显示网页。首先,创建一个包含webview的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent"
          android:orientation="vertical">
<WebView android:id="@+id/myWebView"
          android:layout_width="fill_parent" 
          android:layout_height="fill_parent" />
</LinearLayout>

在您的Activity(可能是onCreate)中,使用您创建的布局初始化WebView对象。一个例子如下。私人WebView webview;

public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.somelayout);

  String url = "http://bigdaddyapp.com";

  webview = (WebView) findViewById(R.id.myWebView);
  //next line explained below
  webview.setWebViewClient(new MyWebViewClient(this));
  webview.getSettings().setJavaScriptEnabled(true);
  webview.loadUrl(url);
}

如果您想要特定的选项,例如在加载时捕获页面,则需要一个内部WebViewClient类。例如,您可以使用onPageStarted(...)方法在Webview中加载新页面时执行某些操作:

public class MyWebViewClient extends WebViewClient {

public MyWebViewClient() {
  super();
  //start anything you need to
}

public void onPageStarted(WebView view, String url, Bitmap favicon) {
  //Do something to the urls, views, etc.
 }
}

希望它对你有所帮助。感谢