Android: отображать HTML-данные - PullRequest
       1

Android: отображать HTML-данные

0 голосов
/ 06 декабря 2011

Я хочу отобразить содержимое html-страницы и изображение справа от этого в моем представлении.

Итак, я определил свой макет как

<ScrollView android:id="@+id/scrllvwNo1"
    android:layout_width="fill_parent" android:layout_height="wrap_content">
    <RelativeLayout android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:background="@drawable/home_bg">
        <ImageView android:id="@+id/aboutcmkimage"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:layout_alignParentRight="true" android:src="@drawable/about"
            android:padding="5dip" />
        <WebView android:id="@+id/aboutcmk" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:textColor="#000000"
            android:layout_toLeftOf="@+id/aboutcmkimage"
            android:layout_alignParentTop="true" android:layout_alignParentLeft="true" />

    </RelativeLayout>

</ScrollView>

и

Я пытаюсь загрузить HTML-страницу, как показано ниже

WebView web = (WebView)findViewById(R.id.aboutcmk);
         web.loadData(getString(R.layout.about),"texl/html","utf-8");

в этом случае я получаю ошибку «Эта страница содержит ошибку в строке 1 ...»

если я попытаюсь

web.loadDataWithBaseURL(null,getString(R.layout.about),"texl/html","utf-8",null); 

без вывода html и без ошибок

В обоих случаях изображение приходит

Может ли кто-нибудь помочь мне в отладке

В моем html есть маркеры, поэтому я не могу использовать textview вместо webview

вот определение моей строки html в файле xml

<string name="About"><html><body><b>What is CMK?</b> ......</body></html> 

Большое спасибо за помощь

Ответы [ 3 ]

1 голос
/ 06 декабря 2011

Прежде всего, если вы сохранили свою HTML-спецификацию как строковый ресурс, вы должны получить к ней доступ как R.string.about, а не R.layout.about.Измените это, если это по-прежнему не работает, попробуйте экранировать меньше символов в вашей строке, например:

<string name="about">&lt;html>&lt;body>&lt;b>What is CMK?&lt;/b> ......&lt;/body>&lt;/html> </string>

Я думаю, вам придется избегать символов меньше чем.Перед загрузкой текста, войдите в него.Вы увидите проблему.

1 голос
/ 06 декабря 2011

вы положили эту строку Что такое CMK? ...... в strings.xml, если да, то исправление находится в этой строке web.loadDataWithBaseURL (нуль, GetString (R.layout.about), "texl / HTML", "UTF-8", NULL);

Correct one:

web.loadDataWithBaseURL(null, getString(R.string.About), "text/html", "UTF-8", null);
0 голосов
/ 06 декабря 2011

Вместо сохранения HTML в strings.xml, вы можете сохранить его в своем собственном файле в каталоге res/raw/. Например, допустим, вы сохранили файл в res/raw/mypage.html. Я не проверял это, но вы должны быть в состоянии открыть сырые ресурсы и загрузить их в WebView как:

try {
    Resources resources = getResources();
    InputStream inputStream = resources.openRawResource(R.raw.mypage);
    byte[] bytes = new byte[inputStream.available()];
    inputStream.read(bytes);

    String htmlStr = new String(bytes);
    webView.loadData(htmlStr, "text/html", "UTF-8");
} catch(Exception e) {
    //blah
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...