Я написал программу для получения данных из моего XML-файла в Eclipse, и я напечатал текстовое представление, чтобы убедиться, что попытка работает, но она не передает данные, но я «Я уверен, что у меня есть неправильные параметры, или я неправильно его называю, поэтому любая помощь будет очень признательна.Android Java Passing XML parser
public class AnimalList extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_animal_list);
//pulls data from XML file
XmlPullParserFactory pullParserFactory;
try
{
pullParserFactory = XmlPullParserFactory.newInstance();
XmlPullParser parser = pullParserFactory.newPullParser();
InputStream in_s = getApplicationContext().getAssets().open("animals.xml");
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(in_s, null);
parseXML(parser);
TextView display = (TextView)findViewById(R.id.animalInfo);
display.setText("crap");
}
catch (XmlPullParserException e)
{
e.printStackTrace();
}
catch (IOException e)
{
//Auto-generated catch block
e.printStackTrace();
}
}
Я знаю, что выше работает печатая на текстовом, но рядом я есть
private void parseXML(XmlPullParser parser) throws XmlPullParserException,IOException
{
ArrayList<Animal> animals = new ArrayList<Animal>();
int eventType = parser.getEventType();
Animal currentAnimal = null;
while (eventType != XmlPullParser.END_DOCUMENT)
{
String name = null;
switch (eventType)
{
case XmlPullParser.START_DOCUMENT:
//animals = new ArrayList();
break;
case XmlPullParser.START_TAG:
name = parser.getName();
if (name == "animal")
{
currentAnimal = new Animal();
}
else if (currentAnimal != null)
{
if (name == "specificLocation")
{
currentAnimal.specificLocation = parser.nextText();
}
else if (name == "name"){
currentAnimal.name = parser.nextText();
}
else if (name == "location")
{
currentAnimal.location= parser.nextText();
}
else if (name == "image")
{
currentAnimal.image= parser.nextText();
}
else if (name == "animalInfo")
{
currentAnimal.animalInfo= parser.nextText();
}
else if (name == "todaysFeed")
{
currentAnimal.todaysFeed= parser.nextText();
}
}
break;
case XmlPullParser.END_TAG:
name = parser.getName();
if (name.equalsIgnoreCase("animal") && currentAnimal != null){
animals.add(currentAnimal);
}
}
eventType = parser.next();
}
printAnimals(animals);
}
И тогда код в нем ничего не делает, так что надеюсь кто-то может указать, если я Правильно ли это передается? В течение второго он просто помещает данные в массив, но если я помещаю вывод текстового представления, прежде чем что-либо делать в нем, это не делает ничего, что заставляет меня думать, что это не передача данных.
Спасибо.
Это помогло бы увидеть код внутри 'ParseXML()'. –
Добавлен код – Navvy
А, нам нужно посмотреть, где вы создаете 'parser'. –