如何在同一页面加载WebView

Ani*_*udh 1 android 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>
Run Code Online (Sandbox Code Playgroud)

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);

            }

        }
    });


}
Run Code Online (Sandbox Code Playgroud)

}

Abh*_*bhi 5

你必须使用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;
    }
}
Run Code Online (Sandbox Code Playgroud)

例如参见这里