如何在WebView中显示网页?

时间:2015-02-19 23:39:41

标签: android android-layout listview android-webview android-adapter

在我的简单应用程序中,我在ListView中有三个ListItem。列表中的一个项目称为主页。创建此项目的目的是我希望一旦用户单击该项目,它应该在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用于设计。 ]

1 个答案:

答案 0 :(得分:1)

首先添加您的AndroidManifest Internet权限。

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

现在上课:

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

上每个项目列表的网址

<强>建议

不要使用RelativeLayouts,请始终使用FrameLayout或LinearLayouts最好适应不同的屏幕。