2012-03-07 52 views
0

我想閱讀我的應用程序中的RSS源,我一直基於一些指南,並且我成功實現了基礎知識。但是,當我打開RSS項目時,標題被顯示,但描述(包含更多字符)以13行和3個點(...)結尾。我已經在JAVA文檔中讀到過,StringBuffer的容量有限,當它達到其最大容量時,它會設置一個分數。這就是爲什麼我認爲問題來自StringBuffer:無法顯示所有description.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> 
+0

你可以發佈URL到你的RSS源嗎? – kabuko 2012-03-07 20:36:45

+0

@kabuko:http://feeds.feedburner.com/Frandroid – androniennn 2012-03-07 20:37:56

+1

這顯然是橢圓形的來源。顯然,Chrome爲獲取完整文章做了一些特殊的事情,這可能是你看到的並且認爲它沒有被截斷,但是如果你看看view-source:feeds.feedburner.com/Frandroid,你可以看到它是。 – kabuko 2012-03-07 20:44:48

回答

2

不,StringBuffer沒有這樣的行爲。您可能正在使用TextView並且設置了ellipsize屬性,或者您的Feed數據實際上被截斷並被自動省略。直接在瀏覽器中查看RSS源,看看它是否是。

+0

請看看發佈的XML,我認爲它沒有什麼「奇怪的」,不是嗎? – androniennn 2012-03-07 20:33:07

+0

它被截斷和橢圓化:\? (我在瀏覽器中看到RSS feed,在我的應用中它錯過了很多字符) – androniennn 2012-03-07 20:34:18