Java 头几个字符从标题、RSS阅读器应用程序android中删除

Java 头几个字符从标题、RSS阅读器应用程序android中删除,java,android,rss,Java,Android,Rss,我目前正在尝试在android上制作一个RSS提要阅读应用程序。从某种意义上说,一切都是有效的,它进入RSS提要……并收回数据。然而,我注意到列表中的第一项的前几个字符被截断了,我不知道为什么。我确信它与我的characters()函数有关,但我不确定它是什么 如果有人能帮助我,那就太好了 谢谢 更新 多亏了拉凯什·兰加尼,这个问题现在已经为我解决了;如果你被困在一个类似的问题上,看看下面他的答案…它帮助了我 我所指的守则: package com.example.rssapplicat

我目前正在尝试在android上制作一个RSS提要阅读应用程序。从某种意义上说,一切都是有效的,它进入RSS提要……并收回数据。然而,我注意到列表中的第一项的前几个字符被截断了,我不知道为什么。我确信它与我的characters()函数有关,但我不确定它是什么

如果有人能帮助我,那就太好了

谢谢

更新

多亏了拉凯什·兰加尼,这个问题现在已经为我解决了;如果你被困在一个类似的问题上,看看下面他的答案…它帮助了我

我所指的守则:

    package com.example.rssapplication;

import java.util.ArrayList;
import java.util.List;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

import android.util.Log;

/**
 * SAX tag handler
 * 
 * @author ITCuties
 *
 */
public class RssParseHandler extends DefaultHandler {

    private List<RssItem> rssItems;

    // Used to reference item while parsing
    private RssItem currentItem;

    // Parsing title indicator
    private boolean parsingTitle;
    // Parsing link indicator
    private boolean parsingLink;

    public RssParseHandler() {
        rssItems = new ArrayList<RssItem>();
        RssItem g = null;
        //rssItems.add(g);
    }

    public List<RssItem> getItems() {
        return rssItems;
    }

    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        if ("item".equals(qName)) {
            currentItem = new RssItem();
        } else if ("title".equals(qName)) {
            parsingTitle = true;            
        } else if ("link".equals(qName)) {
            parsingLink = true;
        }
    }

    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {
        if ("item".equals(qName)) {
            rssItems.add(currentItem);
            currentItem = null;
        } else if ("title".equals(qName)) {
            parsingTitle = false;
        } else if ("link".equals(qName)) {
            parsingLink = false;
        }
    }

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {

        if (parsingTitle) {
            if (currentItem != null)
                currentItem.setTitle(new String(ch, start, length));        
        } else if (parsingLink) {
            if (currentItem != null) {
                currentItem.setLink(new String(ch, start, length));
                parsingLink = false;
            }
        }
    }

}
package com.example.rsa应用程序;
导入java.util.ArrayList;
导入java.util.List;
导入org.xml.sax.Attributes;
导入org.xml.sax.SAXException;
导入org.xml.sax.helpers.DefaultHandler;
导入android.util.Log;
/**
*SAX标记处理程序
* 
*@author-ITCuties
*
*/
公共类RssParseHandler扩展了DefaultHandler{
私有列表站点;
//用于在分析时引用项
私有RssItem当前项;
//解析标题指示符
私有布尔parsingtile;
//解析链接指示符
私有布尔parsingLink;
公共RssParseHandler(){
rssItems=newarraylist();
RssItem g=null;
//rssItems.add(g);
}
公共列表getItems(){
返回rssItems;
}
@凌驾
public void startElement(字符串uri、字符串localName、字符串qName、属性)引发SAXException{
如果(“项”。等于(qName)){
currentItem=new RssItem();
}else if(“title.”等于(qName)){
parsingTitle=真;
}else if(“link”.equals(qName)){
parsingLink=true;
}
}
@凌驾
public void endElement(字符串uri、字符串localName、字符串qName)引发SAXException{
如果(“项”。等于(qName)){
rssItems.add(当前项);
currentItem=null;
}else if(“title.”等于(qName)){
parsingTitle=假;
}else if(“link”.equals(qName)){
parsingLink=false;
}
}
@凌驾
公共无效字符(char[]ch,int start,int length)引发异常{
if(parsingtille){
如果(currentItem!=null)
currentItem.setTitle(新字符串(ch,start,length));
}else if(parsingLink){
如果(currentItem!=null){
setLink(新字符串(ch,start,length));
parsingLink=false;
}
}
}
}
试试这段代码

  package com.example.rssapplication;

  import java.util.ArrayList;
  import java.util.List;

  import org.xml.sax.Attributes;
  import org.xml.sax.SAXException;
  import org.xml.sax.helpers.DefaultHandler;

  import android.util.Log;

  /**
   * SAX tag handler
   * 
   * @author ITCuties
   *
   */
 public class RssParseHandler extends DefaultHandler {

 private List<RssItem> rssItems;

// Used to reference item while parsing
private RssItem currentItem;

// Parsing title indicator
private boolean parsingTitle;
// Parsing link indicator
private boolean parsingLink;
String strTitle = "";

public RssParseHandler() {
    rssItems = new ArrayList<RssItem>();
    //RssItem g = null;
    //rssItems.add(g);
}

public List<RssItem> getItems() {
    return rssItems;
}

@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
    if ("item".equals(qName)) {
        currentItem = new RssItem();
    } else if ("title".equals(qName)) {
        parsingTitle = true;            
    } else if ("link".equals(qName)) {
        parsingLink = true;
    }
}

@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
    if ("item".equals(qName)) {
        rssItems.add(currentItem);
        currentItem = null;
    } else if ("title".equals(qName)) {
        parsingTitle = false;
        strTitle = "";
    } else if ("link".equals(qName)) {
        parsingLink = false;
    }
}

@Override
public void characters(char[] ch, int start, int length) throws SAXException {

    if (parsingTitle) {
        if (currentItem != null)
        {
            strTitle = strTitle
                    + (String) new String(ch, start, length).toString();

            currentItem.setTitle(strTitle);       
        }
    } else if (parsingLink) {
        if (currentItem != null) {
            currentItem.setLink(new String(ch, start, length));
            parsingLink = false;
        }
    }
 }

}
package com.example.rsa应用程序;
导入java.util.ArrayList;
导入java.util.List;
导入org.xml.sax.Attributes;
导入org.xml.sax.SAXException;
导入org.xml.sax.helpers.DefaultHandler;
导入android.util.Log;
/**
*SAX标记处理程序
* 
*@author-ITCuties
*
*/
公共类RssParseHandler扩展了DefaultHandler{
私有列表站点;
//用于在分析时引用项
私有RssItem当前项;
//解析标题指示符
私有布尔parsingtile;
//解析链接指示符
私有布尔parsingLink;
字符串strTitle=“”;
公共RssParseHandler(){
rssItems=newarraylist();
//RssItem g=null;
//rssItems.add(g);
}
公共列表getItems(){
返回rssItems;
}
@凌驾
public void startElement(字符串uri、字符串localName、字符串qName、属性)引发SAXException{
如果(“项”。等于(qName)){
currentItem=new RssItem();
}else if(“title.”等于(qName)){
parsingTitle=真;
}else if(“link”.equals(qName)){
parsingLink=true;
}
}
@凌驾
public void endElement(字符串uri、字符串localName、字符串qName)引发SAXException{
如果(“项”。等于(qName)){
rssItems.add(当前项);
currentItem=null;
}else if(“title.”等于(qName)){
parsingTitle=假;
strTitle=“”;
}else if(“link”.equals(qName)){
parsingLink=false;
}
}
@凌驾
公共无效字符(char[]ch,int start,int length)引发异常{
if(parsingtille){
如果(currentItem!=null)
{
strTitle=strTitle
+(字符串)新字符串(ch,start,length).toString();
currentItem.setTitle(标准标题);
}
}else if(parsingLink){
如果(currentItem!=null){
setLink(新字符串(ch,start,length));
parsingLink=false;
}
}
}
}

啊,是的,已经成功了,谢谢!那么到底是什么问题呢,是不是我只是设置了标题,而没有正确地将其转换为字符串?