当我尝试从网站上提取文本时,TextView会切断大量信息

时间:2011-09-02 21:27:53

标签: android html textview

在我的应用中,我需要从这个网站上提取文字。 http://www.cellphonesolutions.net/help-en-lite

注意它是一个非常大的文件。当我尝试拉文本时,它没有得到文本的前半部分。 textview可以容纳的字符数量是否有限制?如果是这样,我该如何解决这个问题。这是我用来收集文本的代码。

//在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 个答案:

答案 0 :(得分:4)

尝试删除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 :(得分:1)

您的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>

答案 2 :(得分:0)

我也遇到了这个错误。我发现任意paddingBottom值可以修复它 - 但我讨厌这个解决方案。

我确信它是android中的一个错误。