TextView отключает много информации, когда я пытаюсь получить текст с веб-сайта - PullRequest
1 голос
/ 03 сентября 2011

В моем приложении мне нужно вытащить текст с этого сайта.http://www.cellphonesolutions.net/help-en-lite

Обратите внимание, что это очень большой файл.Когда я пытаюсь вытащить текст, он не получает первую половину текста.Существует ли ограничение на количество символов, которое может содержать текстовое представление?если так, как мне обойти эту проблему.Вот код, который я использую для сбора текста.

// в методе oncreate

    TextView faq = (TextView) findViewById(R.id.tvfaq);
    faq.setText((Html.fromHtml(
            cleanhtml(getText("http://www.cellphonesolutions.net/help-en-lite)
            )));

Это очищает комментарии, которые Html.fromHtml не фильтрует

public String cleanhtml(String original) {
    String finalText = original.replaceAll("<![^>]*>", "");

    return finalText;
}

Вот так я получаю текст с сайта

public String getText(String uri) {
    HttpClient client1 = new DefaultHttpClient();
    HttpGet request = new HttpGet(uri);

    ResponseHandler<String> responseHandler = new BasicResponseHandler();
    try {
        String response_str = client1.execute(request, responseHandler);
        return response_str;

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return "";

    }
}

Вот мой xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:background="@drawable/splash_fade"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
    <TextView android:layout_gravity="center" android:text="TextView" android:gravity="center"
        android:id="@+id/tvfaq" android:layout_width="wrap_content" android:textColor="#000000"
        android:layout_height="wrap_content"></TextView>
</ScrollView>
</LinearLayout>

Ответы [ 3 ]

4 голосов
/ 03 сентября 2011

Попробуйте удалить ScrollView

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:background="@drawable/splash_fade"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <TextView android:layout_gravity="center" android:text="TextView" android:gravity="center"
        android:id="@+id/tvfaq" android:layout_width="wrap_content" android:textColor="#000000"
        android:layout_height="wrap_content"></TextView>
</LinearLayout>

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

ОБНОВЛЕНИЕ

вам нужно применить это к вашему textView faq.setMovementMethod(new ScrollingMovementMethod());

Если это не сработает, попробуйте отладить ваше приложение и посмотрите, есть ли в response_str все символы с веб-сайта

1 голос
/ 03 сентября 2011

Ваш TextView обернут вокруг ScrollView.По сути TextView не имеет возможности прокрутки, поэтому переполненный текст будет вырезан из дисплея.

, чтобы предотвратить это использование, оберните ScrollView вокруг вашего текстового представления, что-то вроде этого в xml

<ScrollView android:id="@+id/ScrollView01" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:fillViewport="true">
<TextView 
    android:layout_height="wrap_content" 
    android:id="@+id/TextView01"
    android:layout_width="fill_parent" 
    />
</ScrollView>
0 голосов
/ 09 сентября 2011

Я также испытываю эту ошибку. Я обнаружил, что произвольные значения paddingBottom это исправляют - но я ненавижу это решение.

Я убежден, что это ошибка в Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...