我想在自定义对话框中将Assets文件夹中的静态HTML文件显示到Webview中

时间:2012-11-07 04:52:15

标签: android

我正在尝试将assets文件夹中的html文件显示到自定义对话框中。但是得到了错误。 我正在使用以下代码。

我的自定义对话类

public class RobozoxDialog extends Activity{
Dialog my;
public RobozoxDialog(Context theContext){
    my= new Dialog(theContext);
}
public void showRobozoxDialog(){
    my.show();
}
public void setSource(String title,String url) {

    WebView myWebView = (WebView) findViewById(R.id.webview_dialog);
    myWebView.loadUrl(url); 
    my.setTitle(title);
}
}

自定义对话框XML

<?xml version="1.0" encoding="utf-8"?>
<WebView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview_dialog"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</WebView>

调用Dialog就像这样。

RobozoxDialog d = new RobozoxDialog(MainActivity.this);
d.setSource("Test", "file:///android_asset/test.html");
d.showRobozoxDialog();

但是得到错误并且无法解决问题。当我在主要活动xml的webview中显示html文件时,它正在显示。但是当试图在对话框webview中显示它停止工作..

2 个答案:

答案 0 :(得分:1)

我是通过使用LayoutInflater Code来完成的。

    LayoutInflater li = LayoutInflater.from(theContext);
    View promptsView = li.inflate(R.layout.dialog_layout, null);

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
            theContext);
    alertDialogBuilder.setTitle("Registration");

    alertDialogBuilder.setView(promptsView);

    final WebView webview = (WebView) promptsView
            .findViewById(R.id.webview_dialog);
    webview.loadUrl("file:///android_asset/test.html");
    final AlertDialog alertDialog = alertDialogBuilder.create();

    alertDialog.show();

答案 1 :(得分:0)

  1. 始终将logcat输出添加到您的问题中。我们不知道你得到了什么错误。
  2. 您永远不会在对话框中设置任何布局。请参阅here如何创建自定义对话框。
  3. 您尝试从Activity而不是Dialog获取WebView。试试my.findViewById(R.id.webview_dialog)