2013-01-10 85 views
3

我正在試驗loopj軟件包。我正在嘗試向網站發出HTTP請求並在網頁視圖中顯示該網站。試圖在Web視圖中顯示url

我成功地獲得了一個結果,但是web視圖並不按照需要顯示頁面,而是chrome打開並顯示頁面。

我錯過了什麼或有沒有辦法可以重寫這種不需要的行爲?

下面是我的onCreate方法我在哪裏發出請求:

public class MainActivity extends Activity { 

Button connectBtn; 
TextView status; 
WebView display; 
String url = "http://www.google.com"; 
AsyncHttpClient client; 

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

    status = (TextView)findViewById(R.id.statusbox); 
    connectBtn = (Button)findViewById(R.id.connectBtn); 
    display = (WebView)findViewById(R.id.webView1); 

    connectBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      client = new AsyncHttpClient(); 
      client.get(url, new AsyncHttpResponseHandler(){ 

       @Override 
       public void onSuccess(String response) { 
        Toast.makeText(getApplicationContext(), "Success!", Toast.LENGTH_SHORT).show(); 
        display.loadUrl(url); 

       } 
      }); 
     } 
    }); 
} 
+1

如果你使用''display.loadData(響應,「text/html的「,null)''而不是? – harism

回答

3

setWebViewClient到您的WebView並覆蓋shouldOverrideUrlLoading()現在在該方法中寫入view.loadUrl(url);

只需添加該代碼,

display.setWebViewClient(new WebViewClient() { 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return true; 
}}); 
+0

謝謝,問題解決了! – Javacadabra

+0

感謝您對我的問題的快速,輕鬆Google解答:) –

0

您需要設置一個WebViewClient並覆蓋shouldOverrideUrlLoading方法。類似這樣的:

webView.setWebViewClient(new WebViewClient() { 
    @Override 
    public boolean shouldOverrideUrlLoading(final WebView view, final String url) { 
     view.loadUrl(url); 
    } 
}); 

確保WebView中的鏈接點擊由WebView自身處理。


編輯:其實,我誤解了這個問題。您沒有處理WebView本身的點擊,因此這不相關。抱歉!

0

只需使用此代碼下你webviewclient

public void onPageFinished(WebView view, String url) { 
    super.onPageFinished(view, url); 
    final EditText editText = (EditText) findViewById(R.id.urlfield);   
    editText.setText(url); 

} 

}