在搜索栏WebView中显示Google搜索结果

时间:2014-02-15 16:01:37

标签: android webview

我的布局中有一个编辑文本字段,但问题是,它无法正常工作,因为我必须在字段中输入完整的网址才能打开像“http://www.google.co.in”这样的网站,但我希望它是能够搜索像“谷歌”或“机器人”,但我不知道如何做到这一点。下面是我的代码(代码中没有编辑文本)。我在这里找到了答案,但我不知道该怎么做

How to show Android Google default search results in webview?

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;

public class MainActivity extends Activity {
private WebView mWebView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

CookieManager.getInstance().setAcceptCookie(true);//Enable Cookies
mWebView = (WebView) findViewById(R.id.webView1);
mWebView.getSettings().setJavaScriptEnabled(true);//Enable Java Script
mWebView.setWebViewClient(new HelloWebViewClient());
mWebView.loadUrl("http://www.google.com/"); //Set Home page
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);//Remove ScrollBars
mWebView.getSettings().setDefaultFontSize(12);//Set Font Size
mWebView.getSettings().setLoadsImagesAutomatically(true);//Enable Image Loading
mWebView.getSettings().setPluginState(PluginState.ON);//Enable Flash
mWebView.getSettings().setRenderPriority(RenderPriority.HIGH); //improves Feedback         on touch
mWebView.setBackgroundColor(0x00000000);//Transparent Screen When Loading
//mWebView.getSettings().setBuiltInZoomControls(true);//Set Zoom Controls 
//mWebView.getSettings().setDisplayZoomControls(false);//Requires Api 11
mWebView.getSettings().setAppCacheMaxSize(1024*1024*8);//Set Cache (8mb)
String appCachePath =         getApplicationContext().getCacheDir().getAbsolutePath();//Set Cache (8mb)
mWebView.getSettings().setAppCachePath(appCachePath);//Set Cache (8mb)
mWebView.getSettings().setAllowFileAccess(true);//Set Cache (8mb)
mWebView.getSettings().setAppCacheEnabled(true);//Set Cache (8mb)
mWebView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);//Set Cache (8mb)


}
private class HelloWebViewClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView webview, String url)
{


webview.loadUrl(url);
return true;
}
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{

if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())

{
mWebView.goBack();
return true;
}
return super.onKeyDown(keyCode, event);
}
}

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=".WebViewActivity" >

  <LinearLayout
    android:id="@+id/urlContainer"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <EditText
        android:id="@+id/urlField"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:hint="Enter URL to open" />

    <Button
        android:id="@+id/goButton"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="Open" />
</LinearLayout>

<WebView
    android:id="@+id/webView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/urlContainer" />

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我已完成以下步骤,检查它是否对您有用。

  1. 在清单文件中添加互联网权限
     uses-permission android:name =&#34; android.permission.INTERNET&#34;

  2. 我创建了一个用于输入搜索的布局和另一个用于显示结果的布局。

  3. 我的main.xml是

    <?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" >
    
    <AutoCompleteTextView
        android:id="@+id/editTextInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Enter search text" >
    
        <requestFocus />
    </AutoCompleteTextView>
    
    
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:onClick="onSearchClick"
        android:text="Search" />
    
     </LinearLayout>
    

    我的webview输出布局看起来像

    <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/webView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    
    </LinearLayout>
    
    1. 我的活动java文件我在main.xml中为按钮写了一个clik动作 如

      public void onSearchClick(View v){ 最终的WebView webView; 最终EditText editTextInput; 尝试{ editTextInput =(EditText)findViewById(R.id.editTextInput); String term = editTextInput.getText()。toString(); 的setContentView(R.layout.webviewup); webView =(WebView)findViewById(R.id.webView1); webView.getSettings()setJavaScriptEnabled(真)。 字符串网址=&#34; https://www.google.com/search?q=&#34; +术语; webView.loadUrl(URL);

      } catch(例外e){

      } }

    2. 多数民众赞成:)