我想在我的应用程序上阅读 RSS 提要,我一直基于一些指南,并且我成功地实现了基础知识。但是,当我打开一个 RSS 项目时,会显示标题,但描述(具有更多字符)以大约 13 行和三个点(...)结尾。我在 JAVA 文档中读到 StringBuffer 的容量有限,当它达到其全部容量时,它会设置一个点。这就是为什么我认为问题来自 StringBuffer:
public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException {
// Nous réinitialisons le buffer a chaque fois qu'il rencontre un item
buffer = new StringBuffer();
// Ci dessous, localName contient le nom du tag rencontré
// Nous avons rencontré un tag ITEM, il faut donc instancier un nouveau feed
if (localName.equalsIgnoreCase(ITEM)){
this.currentFeed = new Feed();
inItem = true;
}
// Vous pouvez définir des actions à effectuer pour chaque item rencontré
if (localName.equalsIgnoreCase(TITLE)){
// Nothing to do
}
if (localName.equalsIgnoreCase(LINK)){
// Nothing to do
}
if (localName.equalsIgnoreCase(PUBDATE)){
// Nothing to do
}
if (localName.equalsIgnoreCase(CREATOR)){
// Nothing to do
}
if(localName.equalsIgnoreCase(DESCRIPTION)){
}
}
@Override
public void endElement(String uri, String localName, String name) throws SAXException {
if (localName.equalsIgnoreCase(TITLE)){
if(inItem){
// Les caractères sont dans l'objet buffer
this.currentFeed.setTitle(buffer.toString());
buffer = null;
}
}
if (localName.equalsIgnoreCase(LINK)){
if(inItem){
this.currentFeed.setLink(buffer.toString());
buffer = null;
}
}
if (localName.equalsIgnoreCase(PUBDATE)){
if(inItem){
this.currentFeed.setPubDate(buffer.toString());
buffer = null;
}
}
if (localName.equalsIgnoreCase(CREATOR)){
if(inItem){
this.currentFeed.setCreator(buffer.toString());
buffer = null;
}
}
if(localName.equalsIgnoreCase(DESCRIPTION)){
if(inItem){
this.currentFeed.setDescription(buffer.toString());
buffer = null;
}
}
if (localName.equalsIgnoreCase(ITEM)){
feeds.add(currentFeed);
inItem = false;
}
}
// * Tout ce qui est dans l'arborescence mais n'est pas partie
// * intégrante d'un tag, déclenche la levée de cet événement.
// * En général, cet événement est donc levé tout simplement
// * par la présence de texte entre la balise d'ouverture et
// * la balise de fermeture
public void characters(char[] ch,int start, int length) throws SAXException{
String lecture = new String(ch,start,length);
if(buffer != null) buffer.append(lecture);
}
// cette méthode nous permettra de récupérer les données
public ArrayList<Feed> getData(){
return feeds;
}
}
请问有什么帮助吗?非常感谢。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<TextView android:text="" android:id="@+id/tv_title" android:layout_gravity="center_horizontal" android:layout_height="50dp" android:layout_width="fill_parent"/>
<TextView android:text="" android:id="@+id/tv_content" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp"/>
<TextView android:text="" android:id="@+id/tv_date" android:layout_marginTop="30dp" android:layout_height="fill_parent" android:layout_width="fill_parent"/>
</LinearLayout>