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