第一次使用WebView - 仍然需要一些帮助

时间:2011-04-07 23:51:03

标签: android

我仍在尝试创建一个模仿技术手册的活动。在上一个问题中,有人建议我可以在我的Activity中使用WebView,然后简单地创建并调用一个实际的网页/ html文档(这将有我的类似手工的技术说明)。这听起来像我想做的......

我创建了一个名为test.htm的简单网页,并将其放在我的RAW文件夹中,然后尝试在我的Activity中实现下面的代码。我的问题是:如何设置我的XML文件以使用WebView?我甚至需要一个XML文件吗?线条WebView ....取代了SetContentView吗?有人可以帮我澄清一下如何在我的Activity中使用WebView吗?

公共类Activity5扩展了Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

WebView manual=new WebView(null);
manual.loadData(Utilities.getData(this, R.raw.test),"text/html", "utf-8");

..附加代码......

但是现在只是想了解WebView如何在Activity的上下文中工作,以及与所需的任何XML视图相关。

谢谢!

2 个答案:

答案 0 :(得分:1)

  

如何设置我的XML文件以使用WebView?

只需创建一个包含WebView的普通布局文件即可。从布局角度来看,WebViewListView没有显着差异。

  

我甚至需要一个XML文件吗?

如果整个活动只是WebView,您可以在Java代码中创建WebView并将其传递给setContentView()。不过,请将Activity作为参数传递给WebView构造函数,而不是null

  

有人可以帮我澄清一下如何在我的Activity中使用WebView吗?

我建议您将HTML放在assets/test.html中,并将file:///android_asset/test.htmlloadUrl()一起使用,而不是现在正在做的事情。

答案 1 :(得分:0)

这适用于资产中的文件“help / index.html”, 其他资产文件的相对链接按预期工作。

我添加了后退按钮功能:

public class WebHelp extends Activity {
    WebView wv = null ;
    TextView txtvTitle ;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.help_layout);

        wv = (WebView) findViewById(R.id.help_webview) ;

        wv.getSettings().setBuiltInZoomControls(true) ;   // enable pinch-to-zoom
        wv.setWebViewClient(wvClient) ;

        txtvTitle = (TextView) findViewById(R.id.help_title) ;

        // ''/android_asset'' is a special prefix for asset file Url's
        String url = "file:///android_asset/help/index.html" ; 
        wv.loadUrl(url) ;
    }

    public void onBackPressed() {
       if (wv.canGoBack()) {
           wv.goBack() ;
       }
       else {
           super.onBackPressed() ;
       }
    }

    WebViewClient wvClient = new WebViewClient() {

       @Override
       public void onPageFinished(WebView mywv, String url) {

            // set web page title to the R.id.help_title widget

        String title = mywv.getTitle() ;
            if (title != null) {
                txtvTitle.setText( title) ;  
            }
            else txtvTitle.setText("untitled") ; 
       }      
    }
}

使用带有

的help_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView 
    android:id="@+id/help_title"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
        />
    <WebView 
    android:id="@+id/help_webview"
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1"
        />
</LinearLayout>