2013-02-21 7 views
2

Я пытаюсь создать AlertDialog, который имеет богатый контент. Когда я использую Html.fromHtml() установить текст сообщения, как:Отображение WebView as AlertDialog content

AlertDialog.Builder adb = new AlertDialog.Builder(this); 
adb.setTitle("title"); 
adb.setMessage(Html.fromHtml(text)); 

это только позволяет мне основные HTML элементы, такие как <b> (Жирный) и <i> (Italic).

Когда я использую WebView как

WebView webView = new WebView(this); 
myWebView.loadData(webContent, "text/html", "utf-8"); 
AlertDialog.Builder adb = new AlertDialog.Builder(this); 
adb.setView(webView); 

Я теряю Android стиль по умолчанию.

Что я могу сделать, чтобы получить богатый контекст, например <ul> внутри AlertDialog?.

+0

Что вы подразумеваете под вашим отсутствием стиля андроида по умолчанию? – Prateek

+0

Я использую 'Theme.Holo' (это черный), но когда я использую WebView, он не использует стиль. –

+0

Посмотрите на мои комментарии для уточнения. – Prateek

ответ

1

Вы можете добавить WebView в деятельности, и установить тему деятельности как диалоговое окно в файле манифеста:

<activity ..... 
      android:theme="@android:style/Theme.Dialog"/> 
0

Попробуйте это, используйте пользовательский адаптер

final Dialog custon_dialog = new Dialog(Login.this); 
custon_dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
custon_dialog.setContentView(R.layout.webview); 
custon_dialog.setCancelable(true); 
// custon_dialog.setTitle(null); 

WebView mwebview = (WebView) custon_dialog.findViewById(R.id.webview); 
    mwebview.setBackgroundColor(0x00000000); 
    mwebview.loadData(webContent, "text/html", "utf-8"); 
custon_dialog.show(); 
     } 
    }); 
+0

Имеет ту же проблему, я теряю настройку стиля –

+0

mWebView.setBackgroundColor (0x00000000); проверьте эту ссылку http://stackoverflow.com/questions/5003156/android-webview-style-background-colortransparent-ignored-on-android-2-2 – MuraliGanesan

+0

Это касается только фона, Theme.Holo имеет больше настроек, которые я хочу иметь внутри WebView. –

0

Html.fromHtml (текст) использует TagSoup

не поддерживает простые теги для справки html.fromhtml

Inspite использования

String text="some html code"; 

создайте html-файл с вашим css и т. Д. И поместите все файлы в папку с ресурсами вашего приложения.

Теперь, вместо этого

adb.setMessage(Html.fromHtml(text)); 

как вы хотите Богатое содержание отображается в alerdialog.

Это должно помочь вам, помните: вы можете надуть диалог с настраиваемой компоновкой своего собственного

AlertDialog.Builder alert = new AlertDialog.Builder(yourclass.this); 

    alert.setTitle("title"); 
    WebView wv = new WebView(yourclass.this); 

    wv.loadUrl("file:///assets/yourHtmlFileName.html"); 

         wv.setWebViewClient(new WebViewClient() 
         { 
          public boolean shouldOverrideUrlLoading(WebView view, String url) 
          { 
           view.loadUrl(url); 

           return true; 
          } 
         }); 

         alert.setView(wv); 

         alert.show(); 

        } 
       }); 
+0

Итак, я привязан к CSS? и не может использовать Holo.Theme ?. –

+0

Помните: вы также можете раздуть диалоговое окно самостоятельно. С этой строкой я хочу сказать, что в вашем layout.xml вы можете использовать '@android: style/Theme.Holo' как' android: background' в корневом элементе layout.xml. – Prateek