2014-02-15 167 views
0

我在我的佈局中有一個編輯文本字段,但問題是,它不工作,因爲我必須在字段中鍵入完整的網址才能打開網站,如「http://www.google.co.in」但我希望它能夠搜索也像「谷歌」或「機器人」,但我不知道該怎麼做。下面是我的代碼(代碼中沒有編輯文本)。我找到了答案在這裏,但我不知道該怎麼辦呢在搜索欄中顯示Google搜索結果WebView

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> 

回答

0

我也做了以下步驟,檢查其對您有用。

  1. 在manifest文件中添加Internet權限
    使用許可權的android:NAME =「android.permission.INTERNET對」

  2. 我創建了一個佈局進入搜索和另一佈局顯示結果。

我的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> 

我與web視圖輸出佈局看起來像

<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文件我寫了一個關於CLIK行動的在main.xml中按鈕 as。

    public void onSearchClick(View v){ final WebView webView; final EditText editTextInput; try { editTextInput =(EditText)findViewById(R.id.editTextInput); String term = editTextInput.getText()。toString(); setContentView(R.layout.webviewup); webView =(WebView)findViewById(R.id.webView1); webView.getSettings()。setJavaScriptEnabled(true); String url =「https://www.google.com/search?q=」+ term; webView.loadUrl(url);

    }趕上(例外五){

    } }

這就是所有:)