如何在 WebView 中显示网页?

How do I display a web page in a WebView?

在我的简单应用程序中,我在 ListView 中有三个 ListItem。列表中的一项名为 Homepage。创建这个项目的目的是我希望一旦用户点击那个项目,它应该在 WebView 部分显示一个网页。比方说,在单击 主页 后,Facebook 网站 (facebook.com) 将显示在 Webview 上。我该怎么做?

我的代码:

MainActivity.java:

public class MainActivity extends ActionBarActivity {
    TextView textView;
    WebView webView;

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

        String[] list = {"About Company", "HomePage", "Contact"};

        Adapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);

        ListView listView = (ListView) findViewById(R.id.listId);

        listView.setAdapter((ListAdapter) adapter);
        textView=(TextView)findViewById(R.id.textViewId);
        webView=(WebView)findViewById(R.id.webViewId);
        //click the first Item
        listView.setOnItemClickListener(

                new AdapterView.OnItemClickListener() {

                    public void onItemClick(AdapterView<?> parent, View view, int position, long id ) {
                        //String listPosition = String.valueOf(parent.getItemAtPosition(position))
                        textView.setText("NAME: Facebook\nADDRESS: USA);


                    }
                }
        );

        //click the second item (Homepage)
        //then display the facebook.com

    }
}

.xml:

<

TextView
        android:layout_width="match_parent"
        android:layout_height="120dp"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:id="@+id/textViewId"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="210dp"
        android:background="#58b0b0"
        android:textAlignment="center" />
 <ListView
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:id="@+id/listId"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="#f79727" />

    <WebView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/webViewId"
        android:layout_below="@+id/textViewId"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="56dp" />

[注:我有RelativeLayout用于设计。 ]

首先在你的AndroidManifest上添加上网权限。

<uses-permission android:name="android.permission.INTERNET"/>

现在在您的 class 上:

public class MainActivity extends ActionBarActivity {

WebView webViewId;
public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

//Get webview 
    webViewId = (WebView) findViewById(R.id.webViewId);

    webViewId.getSettings().setJavaScriptEnabled(true);
    webViewId.getSettings().setLoadWithOverviewMode(true);
    webViewId.getSettings().setUseWideViewPort(true);
    webViewId.getSettings().setBuiltInZoomControls(true);
    webViewId.getSettings().setPluginState(WebSettings.PluginState.ON);
    webViewId.getSettings().setPluginsEnabled(true);           
    webViewId.setWebViewClient(new HelloWebViewClient());

    //load url
    webViewId.loadUrl("http://www.facebook.com"); 

    //.........//

}//end oncreate

 private class HelloWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            return false;
        }
    }

现在您可以更改 webViewId.loadUrl("http://www.facebook.com"); 对于在您的 ListView 上单击的每个项目列表 url

建议

不要用RelativeLayouts,总是用FrameLayout或者LinearLayouts,适应不同的屏幕效果更好