如何在同一页面中加载WebView

时间:2012-10-23 06:46:39

标签: android webview

我在单一布局中创建了一个edittext和一个go按钮以及一个webview。当一个人输入一个网址并点击go按钮时,webview应加载网站内容,而不是默认浏览器加载网站我该如何解决这个问题呢?

这是我的代码

xml文件

      <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:tools="http://schemas.android.com/tools"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" >

<WebView
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_marginTop="50dip" />


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
   >

    <EditText
        android:id="@+id/etenterurl"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1.0"
        android:inputType="textUri" />

    <Button
        android:id="@+id/buttongo"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="3.0"
        android:text="Go" />
 </LinearLayout>


 </FrameLayout>

java代码:

import java.util.ArrayList;

import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.annotation.SuppressLint;
import android.app.Activity;


public class MainActivity extends Activity {
EditText etenter;
Button bgo;
WebView webview;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    etenter= (EditText)findViewById(R.id.etenterurl);
    bgo =(Button)findViewById(R.id.buttongo);
    webview = (WebView)findViewById(R.id.webview);
    bgo.setOnClickListener(new View.OnClickListener() {

        @SuppressLint("SetJavaScriptEnabled")
        @Override
        public void onClick(View v) {
            String url=etenter.getText().toString();
            if(url.trim().length()>0){
                webview.getSettings().setJavaScriptEnabled(true);
                webview.loadUrl("http://"+url);

            }

        }
    });


}

}

2 个答案:

答案 0 :(得分:4)

您必须使用WebViewClient

wbView.setWebViewClient(new MyWebViewClient());

  private class MyWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        Log.v("uuuurl",url);
        view.loadUrl(url);
        return true;
    }
}
例如

See here

答案 1 :(得分:2)

你应该使用WebViewClient

webview.setWebViewClient(new WebViewClient(){

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                Log.d("TAG", " ==> "+url);
                view.loadUrl(url);
                return true;                
            }   

        });